Project Overview¶

Computer vision can be used to automate supervision and trigger appropriate actions if an event is predicted from an image of interest. For example, food items can be easily identified by a camera based on:

  • The type of food

  • Color

  • Ingredients, etc.

📊 Data Description¶

The Food101 dataset contains 16,256 images across 17 food classes.

Each class can be roughly split into 70% training and 30% testing.

Classes are typically food names (e.g., apple_pie, chicken_curry).

The dataset has already been attached with this project. Please use the same version provided.

📎 Original Dataset Link for Reference Only:¶

Food101 Dataset on Kaggle

📖 Reference¶

The dataset was originally introduced in the paper: "Food-101 – Mining Discriminative Components with Random Forests" Authors: Lukas Bossard, Matthieu Guillaumin, Luc Van Gool

Import all libirary¶

In [ ]:
import os
import numpy as np                                                                               # Importing numpy for Matrix Operations
import pandas as pd                                                                              # Importing pandas to read CSV files
import matplotlib.pyplot as plt                                                                  # Importting matplotlib for Plotting and visualizing images
import math                                                                                      # Importing math module to perform mathematical operations
import cv2                                                                                       # Importing openCV for image processing
import seaborn as sns                                                                            # Importing seaborn to plot graphs
from collections import defaultdict
import random
import shutil
import os

# Tensorflow modules
import tensorflow as tf
from sklearn.model_selection import train_test_split
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential # Importing the sequential module to define a sequential model
from keras.callbacks import ReduceLROnPlateau, ModelCheckpoint, EarlyStopping
from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D,MaxPool2D, GlobalAveragePooling2D, Input, BatchNormalization, Multiply, Activation
from tensorflow.keras.optimizers import Adam,SGD,Optimizer
from tensorflow.keras.utils import to_categorical


# sklearn lib
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
from keras import backend as K
from sklearn.model_selection import train_test_split # train test split
from sklearn.preprocessing import LabelEncoder # label encoder
from sklearn.metrics import accuracy_score, classification_report

# Set seeds for reproducibility
seed_value = 42

random.seed(seed_value)
np.random.seed(seed_value)
tf.random.set_seed(seed_value)
os.environ['PYTHONHASHSEED'] = str(seed_value)
In [ ]:
# Uncomment and run the following code in case Google Colab is being used
from google.colab import drive
drive.mount('/content/drive')
Mounted at /content/drive
In [ ]:
!unzip '/content/drive/MyDrive/Python Course_shared/computer Vision/Food_101.zip'
Streaming output truncated to the last 5000 lines.
  inflating: Food_101/nachos/2305287.jpg  
  inflating: __MACOSX/Food_101/nachos/._2305287.jpg  
  inflating: Food_101/nachos/2644747.jpg  
  inflating: __MACOSX/Food_101/nachos/._2644747.jpg  
  inflating: Food_101/nachos/1425651.jpg  
  inflating: __MACOSX/Food_101/nachos/._1425651.jpg  
  inflating: Food_101/nachos/835919.jpg  
  inflating: __MACOSX/Food_101/nachos/._835919.jpg  
  inflating: Food_101/nachos/908454.jpg  
  inflating: __MACOSX/Food_101/nachos/._908454.jpg  
  inflating: Food_101/nachos/2553526.jpg  
  inflating: __MACOSX/Food_101/nachos/._2553526.jpg  
  inflating: Food_101/nachos/1323906.jpg  
  inflating: __MACOSX/Food_101/nachos/._1323906.jpg  
  inflating: Food_101/nachos/3228958.jpg  
  inflating: __MACOSX/Food_101/nachos/._3228958.jpg  
  inflating: Food_101/nachos/346658.jpg  
  inflating: __MACOSX/Food_101/nachos/._346658.jpg  
  inflating: Food_101/nachos/2702921.jpg  
  inflating: __MACOSX/Food_101/nachos/._2702921.jpg  
  inflating: Food_101/nachos/1525876.jpg  
  inflating: __MACOSX/Food_101/nachos/._1525876.jpg  
  inflating: Food_101/nachos/1563412.jpg  
  inflating: __MACOSX/Food_101/nachos/._1563412.jpg  
  inflating: Food_101/nachos/2860968.jpg  
  inflating: __MACOSX/Food_101/nachos/._2860968.jpg  
  inflating: Food_101/nachos/664395.jpg  
  inflating: __MACOSX/Food_101/nachos/._664395.jpg  
  inflating: Food_101/nachos/1591690.jpg  
  inflating: __MACOSX/Food_101/nachos/._1591690.jpg  
  inflating: Food_101/nachos/817789.jpg  
  inflating: __MACOSX/Food_101/nachos/._817789.jpg  
  inflating: Food_101/nachos/3345746.jpg  
  inflating: __MACOSX/Food_101/nachos/._3345746.jpg  
  inflating: Food_101/nachos/1381155.jpg  
  inflating: __MACOSX/Food_101/nachos/._1381155.jpg  
  inflating: Food_101/nachos/1578967.jpg  
  inflating: __MACOSX/Food_101/nachos/._1578967.jpg  
  inflating: Food_101/nachos/3854890.jpg  
  inflating: __MACOSX/Food_101/nachos/._3854890.jpg  
  inflating: Food_101/nachos/178322.jpg  
  inflating: __MACOSX/Food_101/nachos/._178322.jpg  
  inflating: Food_101/nachos/251052.jpg  
  inflating: __MACOSX/Food_101/nachos/._251052.jpg  
  inflating: Food_101/nachos/2453485.jpg  
  inflating: __MACOSX/Food_101/nachos/._2453485.jpg  
  inflating: Food_101/nachos/2459802.jpg  
  inflating: __MACOSX/Food_101/nachos/._2459802.jpg  
  inflating: Food_101/nachos/333416.jpg  
  inflating: __MACOSX/Food_101/nachos/._333416.jpg  
  inflating: Food_101/nachos/2548927.jpg  
  inflating: __MACOSX/Food_101/nachos/._2548927.jpg  
  inflating: Food_101/nachos/416432.jpg  
  inflating: __MACOSX/Food_101/nachos/._416432.jpg  
  inflating: Food_101/nachos/3205982.jpg  
  inflating: __MACOSX/Food_101/nachos/._3205982.jpg  
  inflating: Food_101/nachos/3077360.jpg  
  inflating: __MACOSX/Food_101/nachos/._3077360.jpg  
  inflating: Food_101/nachos/821171.jpg  
  inflating: __MACOSX/Food_101/nachos/._821171.jpg  
  inflating: Food_101/nachos/3873751.jpg  
  inflating: __MACOSX/Food_101/nachos/._3873751.jpg  
  inflating: Food_101/nachos/1228715.jpg  
  inflating: __MACOSX/Food_101/nachos/._1228715.jpg  
  inflating: Food_101/nachos/178860.jpg  
  inflating: __MACOSX/Food_101/nachos/._178860.jpg  
  inflating: Food_101/nachos/2225749.jpg  
  inflating: __MACOSX/Food_101/nachos/._2225749.jpg  
  inflating: Food_101/nachos/1627410.jpg  
  inflating: __MACOSX/Food_101/nachos/._1627410.jpg  
  inflating: Food_101/nachos/3725318.jpg  
  inflating: __MACOSX/Food_101/nachos/._3725318.jpg  
  inflating: Food_101/nachos/1648955.jpg  
  inflating: __MACOSX/Food_101/nachos/._1648955.jpg  
  inflating: Food_101/nachos/1803626.jpg  
  inflating: __MACOSX/Food_101/nachos/._1803626.jpg  
  inflating: Food_101/nachos/3266015.jpg  
  inflating: __MACOSX/Food_101/nachos/._3266015.jpg  
  inflating: Food_101/nachos/2756034.jpg  
  inflating: __MACOSX/Food_101/nachos/._2756034.jpg  
  inflating: Food_101/nachos/3161098.jpg  
  inflating: __MACOSX/Food_101/nachos/._3161098.jpg  
  inflating: Food_101/nachos/3441815.jpg  
  inflating: __MACOSX/Food_101/nachos/._3441815.jpg  
  inflating: Food_101/nachos/456375.jpg  
  inflating: __MACOSX/Food_101/nachos/._456375.jpg  
  inflating: Food_101/nachos/3735057.jpg  
  inflating: __MACOSX/Food_101/nachos/._3735057.jpg  
  inflating: Food_101/nachos/1370191.jpg  
  inflating: __MACOSX/Food_101/nachos/._1370191.jpg  
  inflating: Food_101/nachos/1665780.jpg  
  inflating: __MACOSX/Food_101/nachos/._1665780.jpg  
  inflating: Food_101/nachos/781442.jpg  
  inflating: __MACOSX/Food_101/nachos/._781442.jpg  
  inflating: Food_101/nachos/1564426.jpg  
  inflating: __MACOSX/Food_101/nachos/._1564426.jpg  
  inflating: Food_101/nachos/3557865.jpg  
  inflating: __MACOSX/Food_101/nachos/._3557865.jpg  
  inflating: Food_101/nachos/926596.jpg  
  inflating: __MACOSX/Food_101/nachos/._926596.jpg  
  inflating: Food_101/nachos/2842504.jpg  
  inflating: __MACOSX/Food_101/nachos/._2842504.jpg  
  inflating: Food_101/nachos/1635835.jpg  
  inflating: __MACOSX/Food_101/nachos/._1635835.jpg  
  inflating: Food_101/nachos/1621317.jpg  
  inflating: __MACOSX/Food_101/nachos/._1621317.jpg  
  inflating: Food_101/nachos/2589015.jpg  
  inflating: __MACOSX/Food_101/nachos/._2589015.jpg  
  inflating: Food_101/nachos/1869992.jpg  
  inflating: __MACOSX/Food_101/nachos/._1869992.jpg  
  inflating: Food_101/nachos/3855184.jpg  
  inflating: __MACOSX/Food_101/nachos/._3855184.jpg  
  inflating: Food_101/nachos/3189849.jpg  
  inflating: __MACOSX/Food_101/nachos/._3189849.jpg  
  inflating: Food_101/nachos/2165276.jpg  
  inflating: __MACOSX/Food_101/nachos/._2165276.jpg  
  inflating: Food_101/nachos/167607.jpg  
  inflating: __MACOSX/Food_101/nachos/._167607.jpg  
  inflating: Food_101/nachos/2890130.jpg  
  inflating: __MACOSX/Food_101/nachos/._2890130.jpg  
  inflating: Food_101/nachos/3243687.jpg  
  inflating: __MACOSX/Food_101/nachos/._3243687.jpg  
  inflating: Food_101/nachos/2774693.jpg  
  inflating: __MACOSX/Food_101/nachos/._2774693.jpg  
  inflating: Food_101/nachos/3281288.jpg  
  inflating: __MACOSX/Food_101/nachos/._3281288.jpg  
  inflating: Food_101/nachos/93041.jpg  
  inflating: __MACOSX/Food_101/nachos/._93041.jpg  
  inflating: Food_101/nachos/2110172.jpg  
  inflating: __MACOSX/Food_101/nachos/._2110172.jpg  
  inflating: Food_101/nachos/3817438.jpg  
  inflating: __MACOSX/Food_101/nachos/._3817438.jpg  
  inflating: Food_101/nachos/3219238.jpg  
  inflating: __MACOSX/Food_101/nachos/._3219238.jpg  
  inflating: Food_101/nachos/3228797.jpg  
  inflating: __MACOSX/Food_101/nachos/._3228797.jpg  
  inflating: Food_101/nachos/1568961.jpg  
  inflating: __MACOSX/Food_101/nachos/._1568961.jpg  
  inflating: Food_101/nachos/207175.jpg  
  inflating: __MACOSX/Food_101/nachos/._207175.jpg  
  inflating: Food_101/nachos/3817160.jpg  
  inflating: __MACOSX/Food_101/nachos/._3817160.jpg  
  inflating: Food_101/nachos/441804.jpg  
  inflating: __MACOSX/Food_101/nachos/._441804.jpg  
  inflating: Food_101/nachos/571938.jpg  
  inflating: __MACOSX/Food_101/nachos/._571938.jpg  
  inflating: Food_101/nachos/3758285.jpg  
  inflating: __MACOSX/Food_101/nachos/._3758285.jpg  
  inflating: Food_101/nachos/2583738.jpg  
  inflating: __MACOSX/Food_101/nachos/._2583738.jpg  
  inflating: Food_101/nachos/3458201.jpg  
  inflating: __MACOSX/Food_101/nachos/._3458201.jpg  
  inflating: Food_101/nachos/2164340.jpg  
  inflating: __MACOSX/Food_101/nachos/._2164340.jpg  
  inflating: Food_101/nachos/1141241.jpg  
  inflating: __MACOSX/Food_101/nachos/._1141241.jpg  
  inflating: Food_101/nachos/3684259.jpg  
  inflating: __MACOSX/Food_101/nachos/._3684259.jpg  
  inflating: Food_101/nachos/2278882.jpg  
  inflating: __MACOSX/Food_101/nachos/._2278882.jpg  
  inflating: Food_101/nachos/110704.jpg  
  inflating: __MACOSX/Food_101/nachos/._110704.jpg  
  inflating: Food_101/nachos/544149.jpg  
  inflating: __MACOSX/Food_101/nachos/._544149.jpg  
  inflating: Food_101/nachos/165364.jpg  
  inflating: __MACOSX/Food_101/nachos/._165364.jpg  
  inflating: Food_101/nachos/2820234.jpg  
  inflating: __MACOSX/Food_101/nachos/._2820234.jpg  
  inflating: Food_101/nachos/1663278.jpg  
  inflating: __MACOSX/Food_101/nachos/._1663278.jpg  
  inflating: Food_101/nachos/3461292.jpg  
  inflating: __MACOSX/Food_101/nachos/._3461292.jpg  
  inflating: Food_101/nachos/139355.jpg  
  inflating: __MACOSX/Food_101/nachos/._139355.jpg  
  inflating: Food_101/nachos/3190513.jpg  
  inflating: __MACOSX/Food_101/nachos/._3190513.jpg  
  inflating: Food_101/nachos/3198629.jpg  
  inflating: __MACOSX/Food_101/nachos/._3198629.jpg  
  inflating: Food_101/nachos/573256.jpg  
  inflating: __MACOSX/Food_101/nachos/._573256.jpg  
  inflating: Food_101/nachos/3714312.jpg  
  inflating: __MACOSX/Food_101/nachos/._3714312.jpg  
  inflating: Food_101/nachos/3853497.jpg  
  inflating: __MACOSX/Food_101/nachos/._3853497.jpg  
  inflating: Food_101/nachos/3440076.jpg  
  inflating: __MACOSX/Food_101/nachos/._3440076.jpg  
  inflating: Food_101/nachos/74023.jpg  
  inflating: __MACOSX/Food_101/nachos/._74023.jpg  
  inflating: Food_101/nachos/2100598.jpg  
  inflating: __MACOSX/Food_101/nachos/._2100598.jpg  
  inflating: Food_101/nachos/938422.jpg  
  inflating: __MACOSX/Food_101/nachos/._938422.jpg  
  inflating: Food_101/nachos/500252.jpg  
  inflating: __MACOSX/Food_101/nachos/._500252.jpg  
  inflating: Food_101/nachos/3246885.jpg  
  inflating: __MACOSX/Food_101/nachos/._3246885.jpg  
  inflating: Food_101/nachos/2803836.jpg  
  inflating: __MACOSX/Food_101/nachos/._2803836.jpg  
  inflating: Food_101/nachos/671349.jpg  
  inflating: __MACOSX/Food_101/nachos/._671349.jpg  
  inflating: Food_101/nachos/376174.jpg  
  inflating: __MACOSX/Food_101/nachos/._376174.jpg  
  inflating: Food_101/nachos/518390.jpg  
  inflating: __MACOSX/Food_101/nachos/._518390.jpg  
  inflating: Food_101/nachos/1087165.jpg  
  inflating: __MACOSX/Food_101/nachos/._1087165.jpg  
  inflating: Food_101/nachos/1374733.jpg  
  inflating: __MACOSX/Food_101/nachos/._1374733.jpg  
  inflating: Food_101/nachos/3622306.jpg  
  inflating: __MACOSX/Food_101/nachos/._3622306.jpg  
  inflating: Food_101/nachos/1611189.jpg  
  inflating: __MACOSX/Food_101/nachos/._1611189.jpg  
  inflating: Food_101/nachos/3273369.jpg  
  inflating: __MACOSX/Food_101/nachos/._3273369.jpg  
  inflating: Food_101/nachos/2322541.jpg  
  inflating: __MACOSX/Food_101/nachos/._2322541.jpg  
  inflating: Food_101/nachos/2554713.jpg  
  inflating: __MACOSX/Food_101/nachos/._2554713.jpg  
  inflating: Food_101/nachos/1836073.jpg  
  inflating: __MACOSX/Food_101/nachos/._1836073.jpg  
  inflating: Food_101/nachos/939304.jpg  
  inflating: __MACOSX/Food_101/nachos/._939304.jpg  
  inflating: Food_101/nachos/3886136.jpg  
  inflating: __MACOSX/Food_101/nachos/._3886136.jpg  
  inflating: Food_101/nachos/2534024.jpg  
  inflating: __MACOSX/Food_101/nachos/._2534024.jpg  
  inflating: Food_101/nachos/2622198.jpg  
  inflating: __MACOSX/Food_101/nachos/._2622198.jpg  
  inflating: Food_101/nachos/3308863.jpg  
  inflating: __MACOSX/Food_101/nachos/._3308863.jpg  
  inflating: Food_101/nachos/465019.jpg  
  inflating: __MACOSX/Food_101/nachos/._465019.jpg  
  inflating: Food_101/nachos/2527064.jpg  
  inflating: __MACOSX/Food_101/nachos/._2527064.jpg  
  inflating: Food_101/nachos/1093272.jpg  
  inflating: __MACOSX/Food_101/nachos/._1093272.jpg  
  inflating: Food_101/nachos/1332404.jpg  
  inflating: __MACOSX/Food_101/nachos/._1332404.jpg  
  inflating: Food_101/nachos/3275888.jpg  
  inflating: __MACOSX/Food_101/nachos/._3275888.jpg  
  inflating: Food_101/nachos/3340370.jpg  
  inflating: __MACOSX/Food_101/nachos/._3340370.jpg  
  inflating: Food_101/nachos/1784970.jpg  
  inflating: __MACOSX/Food_101/nachos/._1784970.jpg  
  inflating: Food_101/nachos/561082.jpg  
  inflating: __MACOSX/Food_101/nachos/._561082.jpg  
  inflating: Food_101/nachos/1674467.jpg  
  inflating: __MACOSX/Food_101/nachos/._1674467.jpg  
  inflating: Food_101/nachos/3846676.jpg  
  inflating: __MACOSX/Food_101/nachos/._3846676.jpg  
  inflating: Food_101/nachos/527996.jpg  
  inflating: __MACOSX/Food_101/nachos/._527996.jpg  
  inflating: Food_101/nachos/2807503.jpg  
  inflating: __MACOSX/Food_101/nachos/._2807503.jpg  
  inflating: Food_101/nachos/3784674.jpg  
  inflating: __MACOSX/Food_101/nachos/._3784674.jpg  
  inflating: Food_101/nachos/3826814.jpg  
  inflating: __MACOSX/Food_101/nachos/._3826814.jpg  
  inflating: Food_101/nachos/2312914.jpg  
  inflating: __MACOSX/Food_101/nachos/._2312914.jpg  
  inflating: Food_101/nachos/2647506.jpg  
  inflating: __MACOSX/Food_101/nachos/._2647506.jpg  
  inflating: Food_101/nachos/909994.jpg  
  inflating: __MACOSX/Food_101/nachos/._909994.jpg  
  inflating: Food_101/nachos/52624.jpg  
  inflating: __MACOSX/Food_101/nachos/._52624.jpg  
  inflating: Food_101/nachos/2247901.jpg  
  inflating: __MACOSX/Food_101/nachos/._2247901.jpg  
  inflating: Food_101/nachos/2370834.jpg  
  inflating: __MACOSX/Food_101/nachos/._2370834.jpg  
  inflating: Food_101/nachos/2863042.jpg  
  inflating: __MACOSX/Food_101/nachos/._2863042.jpg  
  inflating: Food_101/nachos/1050956.jpg  
  inflating: __MACOSX/Food_101/nachos/._1050956.jpg  
  inflating: Food_101/nachos/3116808.jpg  
  inflating: __MACOSX/Food_101/nachos/._3116808.jpg  
  inflating: Food_101/nachos/3694675.jpg  
  inflating: __MACOSX/Food_101/nachos/._3694675.jpg  
  inflating: Food_101/nachos/2230747.jpg  
  inflating: __MACOSX/Food_101/nachos/._2230747.jpg  
  inflating: Food_101/nachos/863967.jpg  
  inflating: __MACOSX/Food_101/nachos/._863967.jpg  
  inflating: Food_101/nachos/1930360.jpg  
  inflating: __MACOSX/Food_101/nachos/._1930360.jpg  
  inflating: Food_101/nachos/1944387.jpg  
  inflating: __MACOSX/Food_101/nachos/._1944387.jpg  
  inflating: Food_101/nachos/3123469.jpg  
  inflating: __MACOSX/Food_101/nachos/._3123469.jpg  
  inflating: Food_101/nachos/903922.jpg  
  inflating: __MACOSX/Food_101/nachos/._903922.jpg  
  inflating: Food_101/nachos/40630.jpg  
  inflating: __MACOSX/Food_101/nachos/._40630.jpg  
  inflating: Food_101/nachos/713709.jpg  
  inflating: __MACOSX/Food_101/nachos/._713709.jpg  
  inflating: Food_101/nachos/2255726.jpg  
  inflating: __MACOSX/Food_101/nachos/._2255726.jpg  
  inflating: Food_101/nachos/3234783.jpg  
  inflating: __MACOSX/Food_101/nachos/._3234783.jpg  
  inflating: Food_101/nachos/3115939.jpg  
  inflating: __MACOSX/Food_101/nachos/._3115939.jpg  
  inflating: Food_101/nachos/3406230.jpg  
  inflating: __MACOSX/Food_101/nachos/._3406230.jpg  
  inflating: Food_101/nachos/3821951.jpg  
  inflating: __MACOSX/Food_101/nachos/._3821951.jpg  
  inflating: Food_101/nachos/3264375.jpg  
  inflating: __MACOSX/Food_101/nachos/._3264375.jpg  
  inflating: Food_101/nachos/2323303.jpg  
  inflating: __MACOSX/Food_101/nachos/._2323303.jpg  
  inflating: Food_101/nachos/2325772.jpg  
  inflating: __MACOSX/Food_101/nachos/._2325772.jpg  
  inflating: Food_101/nachos/2870823.jpg  
  inflating: __MACOSX/Food_101/nachos/._2870823.jpg  
  inflating: Food_101/nachos/1306389.jpg  
  inflating: __MACOSX/Food_101/nachos/._1306389.jpg  
  inflating: Food_101/nachos/2602853.jpg  
  inflating: __MACOSX/Food_101/nachos/._2602853.jpg  
  inflating: Food_101/nachos/1777036.jpg  
  inflating: __MACOSX/Food_101/nachos/._1777036.jpg  
  inflating: Food_101/nachos/68433.jpg  
  inflating: __MACOSX/Food_101/nachos/._68433.jpg  
  inflating: Food_101/nachos/1944967.jpg  
  inflating: __MACOSX/Food_101/nachos/._1944967.jpg  
  inflating: Food_101/nachos/175416.jpg  
  inflating: __MACOSX/Food_101/nachos/._175416.jpg  
  inflating: Food_101/nachos/1634126.jpg  
  inflating: __MACOSX/Food_101/nachos/._1634126.jpg  
  inflating: Food_101/nachos/2381984.jpg  
  inflating: __MACOSX/Food_101/nachos/._2381984.jpg  
  inflating: Food_101/nachos/481749.jpg  
  inflating: __MACOSX/Food_101/nachos/._481749.jpg  
  inflating: Food_101/nachos/1872218.jpg  
  inflating: __MACOSX/Food_101/nachos/._1872218.jpg  
  inflating: Food_101/nachos/1409545.jpg  
  inflating: __MACOSX/Food_101/nachos/._1409545.jpg  
  inflating: Food_101/nachos/932678.jpg  
  inflating: __MACOSX/Food_101/nachos/._932678.jpg  
  inflating: Food_101/nachos/787394.jpg  
  inflating: __MACOSX/Food_101/nachos/._787394.jpg  
  inflating: Food_101/nachos/1079533.jpg  
  inflating: __MACOSX/Food_101/nachos/._1079533.jpg  
  inflating: Food_101/nachos/763953.jpg  
  inflating: __MACOSX/Food_101/nachos/._763953.jpg  
  inflating: Food_101/nachos/3924814.jpg  
  inflating: __MACOSX/Food_101/nachos/._3924814.jpg  
  inflating: Food_101/nachos/2134822.jpg  
  inflating: __MACOSX/Food_101/nachos/._2134822.jpg  
  inflating: Food_101/nachos/1202878.jpg  
  inflating: __MACOSX/Food_101/nachos/._1202878.jpg  
  inflating: Food_101/nachos/3208292.jpg  
  inflating: __MACOSX/Food_101/nachos/._3208292.jpg  
  inflating: Food_101/nachos/990568.jpg  
  inflating: __MACOSX/Food_101/nachos/._990568.jpg  
  inflating: Food_101/nachos/3362063.jpg  
  inflating: __MACOSX/Food_101/nachos/._3362063.jpg  
  inflating: Food_101/nachos/3644535.jpg  
  inflating: __MACOSX/Food_101/nachos/._3644535.jpg  
  inflating: Food_101/nachos/1230376.jpg  
  inflating: __MACOSX/Food_101/nachos/._1230376.jpg  
  inflating: Food_101/nachos/1692246.jpg  
  inflating: __MACOSX/Food_101/nachos/._1692246.jpg  
  inflating: Food_101/nachos/745214.jpg  
  inflating: __MACOSX/Food_101/nachos/._745214.jpg  
  inflating: Food_101/nachos/1997727.jpg  
  inflating: __MACOSX/Food_101/nachos/._1997727.jpg  
  inflating: Food_101/nachos/337313.jpg  
  inflating: __MACOSX/Food_101/nachos/._337313.jpg  
  inflating: Food_101/nachos/3382395.jpg  
  inflating: __MACOSX/Food_101/nachos/._3382395.jpg  
  inflating: Food_101/nachos/416838.jpg  
  inflating: __MACOSX/Food_101/nachos/._416838.jpg  
  inflating: Food_101/nachos/443811.jpg  
  inflating: __MACOSX/Food_101/nachos/._443811.jpg  
  inflating: Food_101/nachos/1890869.jpg  
  inflating: __MACOSX/Food_101/nachos/._1890869.jpg  
  inflating: Food_101/nachos/488433.jpg  
  inflating: __MACOSX/Food_101/nachos/._488433.jpg  
  inflating: Food_101/nachos/305202.jpg  
  inflating: __MACOSX/Food_101/nachos/._305202.jpg  
  inflating: Food_101/nachos/940615.jpg  
  inflating: __MACOSX/Food_101/nachos/._940615.jpg  
  inflating: Food_101/nachos/194548.jpg  
  inflating: __MACOSX/Food_101/nachos/._194548.jpg  
  inflating: Food_101/nachos/1366044.jpg  
  inflating: __MACOSX/Food_101/nachos/._1366044.jpg  
  inflating: Food_101/nachos/1861847.jpg  
  inflating: __MACOSX/Food_101/nachos/._1861847.jpg  
  inflating: Food_101/nachos/1855512.jpg  
  inflating: __MACOSX/Food_101/nachos/._1855512.jpg  
  inflating: Food_101/nachos/907204.jpg  
  inflating: __MACOSX/Food_101/nachos/._907204.jpg  
  inflating: Food_101/nachos/3565635.jpg  
  inflating: __MACOSX/Food_101/nachos/._3565635.jpg  
  inflating: Food_101/nachos/160634.jpg  
  inflating: __MACOSX/Food_101/nachos/._160634.jpg  
  inflating: Food_101/nachos/2123219.jpg  
  inflating: __MACOSX/Food_101/nachos/._2123219.jpg  
  inflating: Food_101/nachos/532391.jpg  
  inflating: __MACOSX/Food_101/nachos/._532391.jpg  
  inflating: Food_101/nachos/62094.jpg  
  inflating: __MACOSX/Food_101/nachos/._62094.jpg  
  inflating: Food_101/nachos/2887448.jpg  
  inflating: __MACOSX/Food_101/nachos/._2887448.jpg  
  inflating: Food_101/nachos/510859.jpg  
  inflating: __MACOSX/Food_101/nachos/._510859.jpg  
  inflating: Food_101/nachos/2745310.jpg  
  inflating: __MACOSX/Food_101/nachos/._2745310.jpg  
  inflating: Food_101/nachos/3612611.jpg  
  inflating: __MACOSX/Food_101/nachos/._3612611.jpg  
  inflating: Food_101/nachos/3287833.jpg  
  inflating: __MACOSX/Food_101/nachos/._3287833.jpg  
  inflating: Food_101/nachos/3406804.jpg  
  inflating: __MACOSX/Food_101/nachos/._3406804.jpg  
  inflating: Food_101/nachos/3266415.jpg  
  inflating: __MACOSX/Food_101/nachos/._3266415.jpg  
  inflating: Food_101/nachos/3027383.jpg  
  inflating: __MACOSX/Food_101/nachos/._3027383.jpg  
  inflating: Food_101/nachos/3433129.jpg  
  inflating: __MACOSX/Food_101/nachos/._3433129.jpg  
  inflating: Food_101/nachos/1125448.jpg  
  inflating: __MACOSX/Food_101/nachos/._1125448.jpg  
  inflating: Food_101/nachos/3304521.jpg  
  inflating: __MACOSX/Food_101/nachos/._3304521.jpg  
  inflating: Food_101/nachos/3311892.jpg  
  inflating: __MACOSX/Food_101/nachos/._3311892.jpg  
  inflating: Food_101/nachos/397560.jpg  
  inflating: __MACOSX/Food_101/nachos/._397560.jpg  
  inflating: Food_101/nachos/514354.jpg  
  inflating: __MACOSX/Food_101/nachos/._514354.jpg  
  inflating: Food_101/nachos/1080976.jpg  
  inflating: __MACOSX/Food_101/nachos/._1080976.jpg  
  inflating: Food_101/nachos/1320007.jpg  
  inflating: __MACOSX/Food_101/nachos/._1320007.jpg  
  inflating: Food_101/nachos/2662587.jpg  
  inflating: __MACOSX/Food_101/nachos/._2662587.jpg  
  inflating: Food_101/nachos/2357913.jpg  
  inflating: __MACOSX/Food_101/nachos/._2357913.jpg  
  inflating: Food_101/nachos/2869008.jpg  
  inflating: __MACOSX/Food_101/nachos/._2869008.jpg  
  inflating: Food_101/nachos/292154.jpg  
  inflating: __MACOSX/Food_101/nachos/._292154.jpg  
  inflating: Food_101/nachos/2173612.jpg  
  inflating: __MACOSX/Food_101/nachos/._2173612.jpg  
  inflating: Food_101/nachos/1368645.jpg  
  inflating: __MACOSX/Food_101/nachos/._1368645.jpg  
  inflating: Food_101/nachos/172805.jpg  
  inflating: __MACOSX/Food_101/nachos/._172805.jpg  
  inflating: Food_101/nachos/3378575.jpg  
  inflating: __MACOSX/Food_101/nachos/._3378575.jpg  
  inflating: Food_101/nachos/121508.jpg  
  inflating: __MACOSX/Food_101/nachos/._121508.jpg  
  inflating: Food_101/nachos/2844978.jpg  
  inflating: __MACOSX/Food_101/nachos/._2844978.jpg  
  inflating: Food_101/nachos/3296309.jpg  
  inflating: __MACOSX/Food_101/nachos/._3296309.jpg  
  inflating: Food_101/nachos/51925.jpg  
  inflating: __MACOSX/Food_101/nachos/._51925.jpg  
  inflating: Food_101/nachos/3546603.jpg  
  inflating: __MACOSX/Food_101/nachos/._3546603.jpg  
  inflating: Food_101/nachos/2206816.jpg  
  inflating: __MACOSX/Food_101/nachos/._2206816.jpg  
  inflating: Food_101/nachos/3709345.jpg  
  inflating: __MACOSX/Food_101/nachos/._3709345.jpg  
  inflating: Food_101/nachos/1421208.jpg  
  inflating: __MACOSX/Food_101/nachos/._1421208.jpg  
  inflating: Food_101/nachos/1928699.jpg  
  inflating: __MACOSX/Food_101/nachos/._1928699.jpg  
  inflating: Food_101/nachos/1114939.jpg  
  inflating: __MACOSX/Food_101/nachos/._1114939.jpg  
  inflating: Food_101/nachos/3517672.jpg  
  inflating: __MACOSX/Food_101/nachos/._3517672.jpg  
  inflating: Food_101/nachos/2173559.jpg  
  inflating: __MACOSX/Food_101/nachos/._2173559.jpg  
  inflating: Food_101/nachos/3187929.jpg  
  inflating: __MACOSX/Food_101/nachos/._3187929.jpg  
  inflating: Food_101/nachos/1303230.jpg  
  inflating: __MACOSX/Food_101/nachos/._1303230.jpg  
  inflating: Food_101/nachos/3528497.jpg  
  inflating: __MACOSX/Food_101/nachos/._3528497.jpg  
  inflating: Food_101/nachos/2567042.jpg  
  inflating: __MACOSX/Food_101/nachos/._2567042.jpg  
  inflating: Food_101/nachos/1561639.jpg  
  inflating: __MACOSX/Food_101/nachos/._1561639.jpg  
  inflating: Food_101/nachos/225270.jpg  
  inflating: __MACOSX/Food_101/nachos/._225270.jpg  
  inflating: Food_101/nachos/2847727.jpg  
  inflating: __MACOSX/Food_101/nachos/._2847727.jpg  
  inflating: Food_101/nachos/1506305.jpg  
  inflating: __MACOSX/Food_101/nachos/._1506305.jpg  
  inflating: Food_101/nachos/1835420.jpg  
  inflating: __MACOSX/Food_101/nachos/._1835420.jpg  
  inflating: Food_101/nachos/1253611.jpg  
  inflating: __MACOSX/Food_101/nachos/._1253611.jpg  
  inflating: Food_101/nachos/450661.jpg  
  inflating: __MACOSX/Food_101/nachos/._450661.jpg  
  inflating: Food_101/nachos/2122500.jpg  
  inflating: __MACOSX/Food_101/nachos/._2122500.jpg  
  inflating: Food_101/nachos/1439678.jpg  
  inflating: __MACOSX/Food_101/nachos/._1439678.jpg  
  inflating: Food_101/nachos/3315798.jpg  
  inflating: __MACOSX/Food_101/nachos/._3315798.jpg  
  inflating: Food_101/nachos/3471051.jpg  
  inflating: __MACOSX/Food_101/nachos/._3471051.jpg  
  inflating: Food_101/nachos/1228506.jpg  
  inflating: __MACOSX/Food_101/nachos/._1228506.jpg  
  inflating: Food_101/nachos/485666.jpg  
  inflating: __MACOSX/Food_101/nachos/._485666.jpg  
  inflating: Food_101/nachos/3289374.jpg  
  inflating: __MACOSX/Food_101/nachos/._3289374.jpg  
  inflating: Food_101/nachos/399028.jpg  
  inflating: __MACOSX/Food_101/nachos/._399028.jpg  
  inflating: Food_101/nachos/1459952.jpg  
  inflating: __MACOSX/Food_101/nachos/._1459952.jpg  
  inflating: Food_101/nachos/2816150.jpg  
  inflating: __MACOSX/Food_101/nachos/._2816150.jpg  
  inflating: Food_101/nachos/1336102.jpg  
  inflating: __MACOSX/Food_101/nachos/._1336102.jpg  
  inflating: Food_101/nachos/1323241.jpg  
  inflating: __MACOSX/Food_101/nachos/._1323241.jpg  
  inflating: Food_101/nachos/3308865.jpg  
  inflating: __MACOSX/Food_101/nachos/._3308865.jpg  
  inflating: Food_101/nachos/1907531.jpg  
  inflating: __MACOSX/Food_101/nachos/._1907531.jpg  
  inflating: Food_101/nachos/2905662.jpg  
  inflating: __MACOSX/Food_101/nachos/._2905662.jpg  
  inflating: Food_101/nachos/352173.jpg  
  inflating: __MACOSX/Food_101/nachos/._352173.jpg  
  inflating: Food_101/nachos/1459211.jpg  
  inflating: __MACOSX/Food_101/nachos/._1459211.jpg  
  inflating: Food_101/nachos/2869579.jpg  
  inflating: __MACOSX/Food_101/nachos/._2869579.jpg  
  inflating: Food_101/nachos/1862829.jpg  
  inflating: __MACOSX/Food_101/nachos/._1862829.jpg  
  inflating: Food_101/nachos/614474.jpg  
  inflating: __MACOSX/Food_101/nachos/._614474.jpg  
  inflating: Food_101/nachos/2374305.jpg  
  inflating: __MACOSX/Food_101/nachos/._2374305.jpg  
  inflating: Food_101/nachos/3469232.jpg  
  inflating: __MACOSX/Food_101/nachos/._3469232.jpg  
  inflating: Food_101/nachos/3494397.jpg  
  inflating: __MACOSX/Food_101/nachos/._3494397.jpg  
  inflating: Food_101/nachos/2585831.jpg  
  inflating: __MACOSX/Food_101/nachos/._2585831.jpg  
  inflating: Food_101/nachos/3021081.jpg  
  inflating: __MACOSX/Food_101/nachos/._3021081.jpg  
  inflating: Food_101/nachos/697068.jpg  
  inflating: __MACOSX/Food_101/nachos/._697068.jpg  
  inflating: Food_101/nachos/3333300.jpg  
  inflating: __MACOSX/Food_101/nachos/._3333300.jpg  
  inflating: Food_101/nachos/1299584.jpg  
  inflating: __MACOSX/Food_101/nachos/._1299584.jpg  
  inflating: Food_101/nachos/1704678.jpg  
  inflating: __MACOSX/Food_101/nachos/._1704678.jpg  
  inflating: Food_101/nachos/1431109.jpg  
  inflating: __MACOSX/Food_101/nachos/._1431109.jpg  
  inflating: Food_101/nachos/980119.jpg  
  inflating: __MACOSX/Food_101/nachos/._980119.jpg  
  inflating: Food_101/nachos/1243049.jpg  
  inflating: __MACOSX/Food_101/nachos/._1243049.jpg  
  inflating: Food_101/nachos/209662.jpg  
  inflating: __MACOSX/Food_101/nachos/._209662.jpg  
  inflating: Food_101/nachos/965156.jpg  
  inflating: __MACOSX/Food_101/nachos/._965156.jpg  
  inflating: Food_101/nachos/797097.jpg  
  inflating: __MACOSX/Food_101/nachos/._797097.jpg  
  inflating: Food_101/nachos/3569725.jpg  
  inflating: __MACOSX/Food_101/nachos/._3569725.jpg  
  inflating: Food_101/nachos/1892767.jpg  
  inflating: __MACOSX/Food_101/nachos/._1892767.jpg  
  inflating: Food_101/nachos/2746331.jpg  
  inflating: __MACOSX/Food_101/nachos/._2746331.jpg  
  inflating: Food_101/nachos/2954462.jpg  
  inflating: __MACOSX/Food_101/nachos/._2954462.jpg  
  inflating: Food_101/nachos/1379896.jpg  
  inflating: __MACOSX/Food_101/nachos/._1379896.jpg  
  inflating: Food_101/nachos/2401015.jpg  
  inflating: __MACOSX/Food_101/nachos/._2401015.jpg  
  inflating: Food_101/nachos/929638.jpg  
  inflating: __MACOSX/Food_101/nachos/._929638.jpg  
  inflating: Food_101/nachos/1494012.jpg  
  inflating: __MACOSX/Food_101/nachos/._1494012.jpg  
  inflating: Food_101/nachos/947693.jpg  
  inflating: __MACOSX/Food_101/nachos/._947693.jpg  
  inflating: Food_101/nachos/1612344.jpg  
  inflating: __MACOSX/Food_101/nachos/._1612344.jpg  
  inflating: Food_101/nachos/1119704.jpg  
  inflating: __MACOSX/Food_101/nachos/._1119704.jpg  
  inflating: Food_101/nachos/292052.jpg  
  inflating: __MACOSX/Food_101/nachos/._292052.jpg  
  inflating: Food_101/nachos/839211.jpg  
  inflating: __MACOSX/Food_101/nachos/._839211.jpg  
  inflating: Food_101/nachos/1622536.jpg  
  inflating: __MACOSX/Food_101/nachos/._1622536.jpg  
  inflating: Food_101/nachos/248212.jpg  
  inflating: __MACOSX/Food_101/nachos/._248212.jpg  
  inflating: Food_101/nachos/1871211.jpg  
  inflating: __MACOSX/Food_101/nachos/._1871211.jpg  
  inflating: Food_101/nachos/2592053.jpg  
  inflating: __MACOSX/Food_101/nachos/._2592053.jpg  
  inflating: Food_101/nachos/2324810.jpg  
  inflating: __MACOSX/Food_101/nachos/._2324810.jpg  
  inflating: Food_101/nachos/137867.jpg  
  inflating: __MACOSX/Food_101/nachos/._137867.jpg  
  inflating: Food_101/nachos/988425.jpg  
  inflating: __MACOSX/Food_101/nachos/._988425.jpg  
  inflating: Food_101/nachos/1046957.jpg  
  inflating: __MACOSX/Food_101/nachos/._1046957.jpg  
  inflating: Food_101/nachos/485211.jpg  
  inflating: __MACOSX/Food_101/nachos/._485211.jpg  
  inflating: Food_101/nachos/3706789.jpg  
  inflating: __MACOSX/Food_101/nachos/._3706789.jpg  
  inflating: Food_101/nachos/3511503.jpg  
  inflating: __MACOSX/Food_101/nachos/._3511503.jpg  
  inflating: Food_101/nachos/3632363.jpg  
  inflating: __MACOSX/Food_101/nachos/._3632363.jpg  
  inflating: Food_101/nachos/3321881.jpg  
  inflating: __MACOSX/Food_101/nachos/._3321881.jpg  
  inflating: Food_101/nachos/3141667.jpg  
  inflating: __MACOSX/Food_101/nachos/._3141667.jpg  
  inflating: Food_101/nachos/698206.jpg  
  inflating: __MACOSX/Food_101/nachos/._698206.jpg  
  inflating: Food_101/nachos/3894142.jpg  
  inflating: __MACOSX/Food_101/nachos/._3894142.jpg  
  inflating: Food_101/nachos/2409919.jpg  
  inflating: __MACOSX/Food_101/nachos/._2409919.jpg  
  inflating: Food_101/nachos/2496234.jpg  
  inflating: __MACOSX/Food_101/nachos/._2496234.jpg  
  inflating: Food_101/nachos/1866963.jpg  
  inflating: __MACOSX/Food_101/nachos/._1866963.jpg  
  inflating: Food_101/nachos/1143351.jpg  
  inflating: __MACOSX/Food_101/nachos/._1143351.jpg  
  inflating: Food_101/nachos/3843342.jpg  
  inflating: __MACOSX/Food_101/nachos/._3843342.jpg  
  inflating: Food_101/nachos/1765867.jpg  
  inflating: __MACOSX/Food_101/nachos/._1765867.jpg  
  inflating: Food_101/nachos/3268846.jpg  
  inflating: __MACOSX/Food_101/nachos/._3268846.jpg  
  inflating: Food_101/nachos/30238.jpg  
  inflating: __MACOSX/Food_101/nachos/._30238.jpg  
  inflating: Food_101/nachos/1295618.jpg  
  inflating: __MACOSX/Food_101/nachos/._1295618.jpg  
  inflating: Food_101/nachos/832231.jpg  
  inflating: __MACOSX/Food_101/nachos/._832231.jpg  
  inflating: Food_101/nachos/1706293.jpg  
  inflating: __MACOSX/Food_101/nachos/._1706293.jpg  
  inflating: Food_101/nachos/1230273.jpg  
  inflating: __MACOSX/Food_101/nachos/._1230273.jpg  
  inflating: Food_101/nachos/1952973.jpg  
  inflating: __MACOSX/Food_101/nachos/._1952973.jpg  
  inflating: Food_101/nachos/3396018.jpg  
  inflating: __MACOSX/Food_101/nachos/._3396018.jpg  
  inflating: Food_101/nachos/456896.jpg  
  inflating: __MACOSX/Food_101/nachos/._456896.jpg  
  inflating: Food_101/nachos/443257.jpg  
  inflating: __MACOSX/Food_101/nachos/._443257.jpg  
  inflating: Food_101/nachos/2299957.jpg  
  inflating: __MACOSX/Food_101/nachos/._2299957.jpg  
  inflating: Food_101/nachos/83227.jpg  
  inflating: __MACOSX/Food_101/nachos/._83227.jpg  
  inflating: Food_101/nachos/3911982.jpg  
  inflating: __MACOSX/Food_101/nachos/._3911982.jpg  
  inflating: Food_101/nachos/1880612.jpg  
  inflating: __MACOSX/Food_101/nachos/._1880612.jpg  
  inflating: Food_101/nachos/1943881.jpg  
  inflating: __MACOSX/Food_101/nachos/._1943881.jpg  
  inflating: Food_101/nachos/462516.jpg  
  inflating: __MACOSX/Food_101/nachos/._462516.jpg  
  inflating: Food_101/nachos/3638937.jpg  
  inflating: __MACOSX/Food_101/nachos/._3638937.jpg  
  inflating: Food_101/nachos/3672619.jpg  
  inflating: __MACOSX/Food_101/nachos/._3672619.jpg  
  inflating: Food_101/nachos/330962.jpg  
  inflating: __MACOSX/Food_101/nachos/._330962.jpg  
  inflating: Food_101/nachos/3249444.jpg  
  inflating: __MACOSX/Food_101/nachos/._3249444.jpg  
  inflating: Food_101/nachos/3304961.jpg  
  inflating: __MACOSX/Food_101/nachos/._3304961.jpg  
  inflating: Food_101/nachos/3564202.jpg  
  inflating: __MACOSX/Food_101/nachos/._3564202.jpg  
  inflating: Food_101/nachos/1824367.jpg  
  inflating: __MACOSX/Food_101/nachos/._1824367.jpg  
  inflating: Food_101/nachos/517599.jpg  
  inflating: __MACOSX/Food_101/nachos/._517599.jpg  
  inflating: Food_101/nachos/3832585.jpg  
  inflating: __MACOSX/Food_101/nachos/._3832585.jpg  
  inflating: Food_101/nachos/3685681.jpg  
  inflating: __MACOSX/Food_101/nachos/._3685681.jpg  
  inflating: Food_101/nachos/3762754.jpg  
  inflating: __MACOSX/Food_101/nachos/._3762754.jpg  
  inflating: Food_101/nachos/1916048.jpg  
  inflating: __MACOSX/Food_101/nachos/._1916048.jpg  
  inflating: Food_101/nachos/580395.jpg  
  inflating: __MACOSX/Food_101/nachos/._580395.jpg  
  inflating: Food_101/nachos/2267533.jpg  
  inflating: __MACOSX/Food_101/nachos/._2267533.jpg  
  inflating: Food_101/nachos/1983523.jpg  
  inflating: __MACOSX/Food_101/nachos/._1983523.jpg  
  inflating: Food_101/nachos/1436063.jpg  
  inflating: __MACOSX/Food_101/nachos/._1436063.jpg  
  inflating: Food_101/nachos/3886544.jpg  
  inflating: __MACOSX/Food_101/nachos/._3886544.jpg  
  inflating: Food_101/nachos/2359350.jpg  
  inflating: __MACOSX/Food_101/nachos/._2359350.jpg  
  inflating: Food_101/nachos/2036049.jpg  
  inflating: __MACOSX/Food_101/nachos/._2036049.jpg  
  inflating: Food_101/nachos/42294.jpg  
  inflating: __MACOSX/Food_101/nachos/._42294.jpg  
  inflating: Food_101/nachos/1167018.jpg  
  inflating: __MACOSX/Food_101/nachos/._1167018.jpg  
  inflating: Food_101/nachos/1938362.jpg  
  inflating: __MACOSX/Food_101/nachos/._1938362.jpg  
  inflating: Food_101/nachos/1011831.jpg  
  inflating: __MACOSX/Food_101/nachos/._1011831.jpg  
  inflating: Food_101/nachos/3898974.jpg  
  inflating: __MACOSX/Food_101/nachos/._3898974.jpg  
  inflating: Food_101/nachos/3293771.jpg  
  inflating: __MACOSX/Food_101/nachos/._3293771.jpg  
  inflating: Food_101/nachos/549619.jpg  
  inflating: __MACOSX/Food_101/nachos/._549619.jpg  
  inflating: Food_101/nachos/1885806.jpg  
  inflating: __MACOSX/Food_101/nachos/._1885806.jpg  
  inflating: Food_101/nachos/1137835.jpg  
  inflating: __MACOSX/Food_101/nachos/._1137835.jpg  
  inflating: Food_101/nachos/297114.jpg  
  inflating: __MACOSX/Food_101/nachos/._297114.jpg  
  inflating: Food_101/nachos/1464283.jpg  
  inflating: __MACOSX/Food_101/nachos/._1464283.jpg  
  inflating: Food_101/nachos/3639989.jpg  
  inflating: __MACOSX/Food_101/nachos/._3639989.jpg  
  inflating: Food_101/nachos/2712831.jpg  
  inflating: __MACOSX/Food_101/nachos/._2712831.jpg  
  inflating: Food_101/nachos/3195804.jpg  
  inflating: __MACOSX/Food_101/nachos/._3195804.jpg  
  inflating: Food_101/nachos/275807.jpg  
  inflating: __MACOSX/Food_101/nachos/._275807.jpg  
  inflating: Food_101/nachos/671128.jpg  
  inflating: __MACOSX/Food_101/nachos/._671128.jpg  
  inflating: Food_101/nachos/237361.jpg  
  inflating: __MACOSX/Food_101/nachos/._237361.jpg  
  inflating: Food_101/nachos/512386.jpg  
  inflating: __MACOSX/Food_101/nachos/._512386.jpg  
  inflating: Food_101/nachos/3190767.jpg  
  inflating: __MACOSX/Food_101/nachos/._3190767.jpg  
  inflating: Food_101/nachos/1270046.jpg  
  inflating: __MACOSX/Food_101/nachos/._1270046.jpg  
  inflating: Food_101/nachos/3056132.jpg  
  inflating: __MACOSX/Food_101/nachos/._3056132.jpg  
  inflating: Food_101/nachos/1951921.jpg  
  inflating: __MACOSX/Food_101/nachos/._1951921.jpg  
  inflating: Food_101/nachos/3317075.jpg  
  inflating: __MACOSX/Food_101/nachos/._3317075.jpg  
  inflating: Food_101/nachos/184926.jpg  
  inflating: __MACOSX/Food_101/nachos/._184926.jpg  
  inflating: Food_101/nachos/3875988.jpg  
  inflating: __MACOSX/Food_101/nachos/._3875988.jpg  
  inflating: Food_101/nachos/3854007.jpg  
  inflating: __MACOSX/Food_101/nachos/._3854007.jpg  
  inflating: Food_101/nachos/90700.jpg  
  inflating: __MACOSX/Food_101/nachos/._90700.jpg  
  inflating: Food_101/nachos/3745261.jpg  
  inflating: __MACOSX/Food_101/nachos/._3745261.jpg  
  inflating: Food_101/nachos/3917116.jpg  
  inflating: __MACOSX/Food_101/nachos/._3917116.jpg  
  inflating: Food_101/nachos/1422349.jpg  
  inflating: __MACOSX/Food_101/nachos/._1422349.jpg  
  inflating: Food_101/nachos/1996265.jpg  
  inflating: __MACOSX/Food_101/nachos/._1996265.jpg  
  inflating: Food_101/nachos/1750001.jpg  
  inflating: __MACOSX/Food_101/nachos/._1750001.jpg  
  inflating: Food_101/nachos/111242.jpg  
  inflating: __MACOSX/Food_101/nachos/._111242.jpg  
  inflating: Food_101/nachos/3546539.jpg  
  inflating: __MACOSX/Food_101/nachos/._3546539.jpg  
  inflating: Food_101/nachos/3082798.jpg  
  inflating: __MACOSX/Food_101/nachos/._3082798.jpg  
  inflating: Food_101/nachos/232806.jpg  
  inflating: __MACOSX/Food_101/nachos/._232806.jpg  
  inflating: Food_101/nachos/3303216.jpg  
  inflating: __MACOSX/Food_101/nachos/._3303216.jpg  
  inflating: Food_101/nachos/2662905.jpg  
  inflating: __MACOSX/Food_101/nachos/._2662905.jpg  
  inflating: Food_101/nachos/996751.jpg  
  inflating: __MACOSX/Food_101/nachos/._996751.jpg  
  inflating: Food_101/nachos/198664.jpg  
  inflating: __MACOSX/Food_101/nachos/._198664.jpg  
  inflating: Food_101/nachos/371718.jpg  
  inflating: __MACOSX/Food_101/nachos/._371718.jpg  
  inflating: Food_101/nachos/860941.jpg  
  inflating: __MACOSX/Food_101/nachos/._860941.jpg  
  inflating: Food_101/nachos/1042316.jpg  
  inflating: __MACOSX/Food_101/nachos/._1042316.jpg  
  inflating: Food_101/nachos/2018548.jpg  
  inflating: __MACOSX/Food_101/nachos/._2018548.jpg  
  inflating: Food_101/nachos/2704460.jpg  
  inflating: __MACOSX/Food_101/nachos/._2704460.jpg  
  inflating: Food_101/nachos/2392193.jpg  
  inflating: __MACOSX/Food_101/nachos/._2392193.jpg  
  inflating: Food_101/nachos/1860087.jpg  
  inflating: __MACOSX/Food_101/nachos/._1860087.jpg  
  inflating: Food_101/nachos/1817582.jpg  
  inflating: __MACOSX/Food_101/nachos/._1817582.jpg  
  inflating: Food_101/nachos/937158.jpg  
  inflating: __MACOSX/Food_101/nachos/._937158.jpg  
  inflating: Food_101/nachos/648154.jpg  
  inflating: __MACOSX/Food_101/nachos/._648154.jpg  
  inflating: Food_101/nachos/3129872.jpg  
  inflating: __MACOSX/Food_101/nachos/._3129872.jpg  
  inflating: Food_101/nachos/1319194.jpg  
  inflating: __MACOSX/Food_101/nachos/._1319194.jpg  
  inflating: Food_101/nachos/3885316.jpg  
  inflating: __MACOSX/Food_101/nachos/._3885316.jpg  
  inflating: Food_101/nachos/3885464.jpg  
  inflating: __MACOSX/Food_101/nachos/._3885464.jpg  
  inflating: Food_101/nachos/2746323.jpg  
  inflating: __MACOSX/Food_101/nachos/._2746323.jpg  
  inflating: Food_101/nachos/2734762.jpg  
  inflating: __MACOSX/Food_101/nachos/._2734762.jpg  
  inflating: Food_101/nachos/2671362.jpg  
  inflating: __MACOSX/Food_101/nachos/._2671362.jpg  
  inflating: Food_101/nachos/602698.jpg  
  inflating: __MACOSX/Food_101/nachos/._602698.jpg  
  inflating: Food_101/nachos/838135.jpg  
  inflating: __MACOSX/Food_101/nachos/._838135.jpg  
  inflating: Food_101/nachos/19915.jpg  
  inflating: __MACOSX/Food_101/nachos/._19915.jpg  
  inflating: Food_101/nachos/135521.jpg  
  inflating: __MACOSX/Food_101/nachos/._135521.jpg  
  inflating: Food_101/nachos/2029193.jpg  
  inflating: __MACOSX/Food_101/nachos/._2029193.jpg  
  inflating: Food_101/nachos/1262650.jpg  
  inflating: __MACOSX/Food_101/nachos/._1262650.jpg  
  inflating: Food_101/nachos/3863297.jpg  
  inflating: __MACOSX/Food_101/nachos/._3863297.jpg  
  inflating: Food_101/nachos/126763.jpg  
  inflating: __MACOSX/Food_101/nachos/._126763.jpg  
  inflating: Food_101/nachos/3729750.jpg  
  inflating: __MACOSX/Food_101/nachos/._3729750.jpg  
  inflating: Food_101/nachos/3516518.jpg  
  inflating: __MACOSX/Food_101/nachos/._3516518.jpg  
  inflating: Food_101/nachos/2591010.jpg  
  inflating: __MACOSX/Food_101/nachos/._2591010.jpg  
  inflating: Food_101/nachos/1343890.jpg  
  inflating: __MACOSX/Food_101/nachos/._1343890.jpg  
  inflating: Food_101/nachos/1558999.jpg  
  inflating: __MACOSX/Food_101/nachos/._1558999.jpg  
  inflating: Food_101/nachos/2288041.jpg  
  inflating: __MACOSX/Food_101/nachos/._2288041.jpg  
  inflating: Food_101/nachos/3140231.jpg  
  inflating: __MACOSX/Food_101/nachos/._3140231.jpg  
  inflating: Food_101/nachos/1093162.jpg  
  inflating: __MACOSX/Food_101/nachos/._1093162.jpg  
  inflating: Food_101/nachos/586509.jpg  
  inflating: __MACOSX/Food_101/nachos/._586509.jpg  
  inflating: Food_101/nachos/79004.jpg  
  inflating: __MACOSX/Food_101/nachos/._79004.jpg  
  inflating: Food_101/nachos/3654590.jpg  
  inflating: __MACOSX/Food_101/nachos/._3654590.jpg  
  inflating: Food_101/nachos/2894735.jpg  
  inflating: __MACOSX/Food_101/nachos/._2894735.jpg  
  inflating: Food_101/nachos/31083.jpg  
  inflating: __MACOSX/Food_101/nachos/._31083.jpg  
  inflating: Food_101/nachos/2945420.jpg  
  inflating: __MACOSX/Food_101/nachos/._2945420.jpg  
  inflating: Food_101/nachos/3725235.jpg  
  inflating: __MACOSX/Food_101/nachos/._3725235.jpg  
  inflating: Food_101/nachos/3761463.jpg  
  inflating: __MACOSX/Food_101/nachos/._3761463.jpg  
  inflating: Food_101/nachos/3831659.jpg  
  inflating: __MACOSX/Food_101/nachos/._3831659.jpg  
  inflating: Food_101/nachos/1510467.jpg  
  inflating: __MACOSX/Food_101/nachos/._1510467.jpg  
  inflating: Food_101/nachos/3275811.jpg  
  inflating: __MACOSX/Food_101/nachos/._3275811.jpg  
  inflating: Food_101/nachos/1546806.jpg  
  inflating: __MACOSX/Food_101/nachos/._1546806.jpg  
  inflating: Food_101/nachos/3193323.jpg  
  inflating: __MACOSX/Food_101/nachos/._3193323.jpg  
  inflating: Food_101/nachos/247536.jpg  
  inflating: __MACOSX/Food_101/nachos/._247536.jpg  
  inflating: Food_101/nachos/334533.jpg  
  inflating: __MACOSX/Food_101/nachos/._334533.jpg  
  inflating: Food_101/nachos/2753277.jpg  
  inflating: __MACOSX/Food_101/nachos/._2753277.jpg  
  inflating: Food_101/nachos/2208938.jpg  
  inflating: __MACOSX/Food_101/nachos/._2208938.jpg  
  inflating: Food_101/nachos/3581934.jpg  
  inflating: __MACOSX/Food_101/nachos/._3581934.jpg  
  inflating: Food_101/nachos/2846513.jpg  
  inflating: __MACOSX/Food_101/nachos/._2846513.jpg  
  inflating: Food_101/nachos/2333979.jpg  
  inflating: __MACOSX/Food_101/nachos/._2333979.jpg  
  inflating: Food_101/nachos/3251219.jpg  
  inflating: __MACOSX/Food_101/nachos/._3251219.jpg  
  inflating: Food_101/nachos/164427.jpg  
  inflating: __MACOSX/Food_101/nachos/._164427.jpg  
  inflating: Food_101/nachos/308790.jpg  
  inflating: __MACOSX/Food_101/nachos/._308790.jpg  
  inflating: Food_101/nachos/1833184.jpg  
  inflating: __MACOSX/Food_101/nachos/._1833184.jpg  
  inflating: Food_101/nachos/2241874.jpg  
  inflating: __MACOSX/Food_101/nachos/._2241874.jpg  
  inflating: Food_101/nachos/197034.jpg  
  inflating: __MACOSX/Food_101/nachos/._197034.jpg  
  inflating: Food_101/nachos/3094499.jpg  
  inflating: __MACOSX/Food_101/nachos/._3094499.jpg  
  inflating: Food_101/nachos/1331196.jpg  
  inflating: __MACOSX/Food_101/nachos/._1331196.jpg  
  inflating: Food_101/nachos/2045499.jpg  
  inflating: __MACOSX/Food_101/nachos/._2045499.jpg  
  inflating: Food_101/nachos/1812189.jpg  
  inflating: __MACOSX/Food_101/nachos/._1812189.jpg  
  inflating: Food_101/nachos/636476.jpg  
  inflating: __MACOSX/Food_101/nachos/._636476.jpg  
  inflating: Food_101/nachos/1834172.jpg  
  inflating: __MACOSX/Food_101/nachos/._1834172.jpg  
  inflating: Food_101/nachos/2705345.jpg  
  inflating: __MACOSX/Food_101/nachos/._2705345.jpg  
  inflating: Food_101/nachos/676873.jpg  
  inflating: __MACOSX/Food_101/nachos/._676873.jpg  
  inflating: Food_101/nachos/1206882.jpg  
  inflating: __MACOSX/Food_101/nachos/._1206882.jpg  
  inflating: Food_101/nachos/2498553.jpg  
  inflating: __MACOSX/Food_101/nachos/._2498553.jpg  
  inflating: Food_101/nachos/3243231.jpg  
  inflating: __MACOSX/Food_101/nachos/._3243231.jpg  
  inflating: Food_101/nachos/2816091.jpg  
  inflating: __MACOSX/Food_101/nachos/._2816091.jpg  
  inflating: Food_101/nachos/313978.jpg  
  inflating: __MACOSX/Food_101/nachos/._313978.jpg  
  inflating: Food_101/nachos/814609.jpg  
  inflating: __MACOSX/Food_101/nachos/._814609.jpg  
  inflating: Food_101/nachos/1274794.jpg  
  inflating: __MACOSX/Food_101/nachos/._1274794.jpg  
  inflating: Food_101/nachos/3187792.jpg  
  inflating: __MACOSX/Food_101/nachos/._3187792.jpg  
  inflating: Food_101/nachos/2267291.jpg  
  inflating: __MACOSX/Food_101/nachos/._2267291.jpg  
  inflating: Food_101/nachos/3494294.jpg  
  inflating: __MACOSX/Food_101/nachos/._3494294.jpg  
  inflating: Food_101/nachos/2616112.jpg  
  inflating: __MACOSX/Food_101/nachos/._2616112.jpg  
  inflating: Food_101/nachos/1099464.jpg  
  inflating: __MACOSX/Food_101/nachos/._1099464.jpg  
  inflating: Food_101/nachos/2769275.jpg  
  inflating: __MACOSX/Food_101/nachos/._2769275.jpg  
  inflating: Food_101/nachos/2111195.jpg  
  inflating: __MACOSX/Food_101/nachos/._2111195.jpg  
  inflating: Food_101/nachos/3602931.jpg  
  inflating: __MACOSX/Food_101/nachos/._3602931.jpg  
  inflating: Food_101/nachos/571814.jpg  
  inflating: __MACOSX/Food_101/nachos/._571814.jpg  
  inflating: Food_101/nachos/842843.jpg  
  inflating: __MACOSX/Food_101/nachos/._842843.jpg  
  inflating: Food_101/nachos/3025131.jpg  
  inflating: __MACOSX/Food_101/nachos/._3025131.jpg  
  inflating: Food_101/nachos/2465420.jpg  
  inflating: __MACOSX/Food_101/nachos/._2465420.jpg  
  inflating: Food_101/nachos/1986110.jpg  
  inflating: __MACOSX/Food_101/nachos/._1986110.jpg  
  inflating: Food_101/nachos/1009513.jpg  
  inflating: __MACOSX/Food_101/nachos/._1009513.jpg  
  inflating: Food_101/nachos/2094612.jpg  
  inflating: __MACOSX/Food_101/nachos/._2094612.jpg  
  inflating: Food_101/nachos/2414597.jpg  
  inflating: __MACOSX/Food_101/nachos/._2414597.jpg  
  inflating: Food_101/nachos/640318.jpg  
  inflating: __MACOSX/Food_101/nachos/._640318.jpg  
  inflating: Food_101/nachos/3479308.jpg  
  inflating: __MACOSX/Food_101/nachos/._3479308.jpg  
  inflating: Food_101/nachos/547222.jpg  
  inflating: __MACOSX/Food_101/nachos/._547222.jpg  
  inflating: Food_101/nachos/1074329.jpg  
  inflating: __MACOSX/Food_101/nachos/._1074329.jpg  
  inflating: Food_101/nachos/99087.jpg  
  inflating: __MACOSX/Food_101/nachos/._99087.jpg  
  inflating: Food_101/nachos/1144598.jpg  
  inflating: __MACOSX/Food_101/nachos/._1144598.jpg  
  inflating: Food_101/nachos/2621423.jpg  
  inflating: __MACOSX/Food_101/nachos/._2621423.jpg  
  inflating: Food_101/nachos/260405.jpg  
  inflating: __MACOSX/Food_101/nachos/._260405.jpg  
  inflating: Food_101/nachos/99050.jpg  
  inflating: __MACOSX/Food_101/nachos/._99050.jpg  
  inflating: Food_101/nachos/2735495.jpg  
  inflating: __MACOSX/Food_101/nachos/._2735495.jpg  
  inflating: Food_101/nachos/2228627.jpg  
  inflating: __MACOSX/Food_101/nachos/._2228627.jpg  
  inflating: Food_101/nachos/2309414.jpg  
  inflating: __MACOSX/Food_101/nachos/._2309414.jpg  
  inflating: Food_101/nachos/1147287.jpg  
  inflating: __MACOSX/Food_101/nachos/._1147287.jpg  
  inflating: Food_101/nachos/3274926.jpg  
  inflating: __MACOSX/Food_101/nachos/._3274926.jpg  
  inflating: Food_101/nachos/1075209.jpg  
  inflating: __MACOSX/Food_101/nachos/._1075209.jpg  
  inflating: Food_101/nachos/946774.jpg  
  inflating: __MACOSX/Food_101/nachos/._946774.jpg  
  inflating: Food_101/nachos/1825283.jpg  
  inflating: __MACOSX/Food_101/nachos/._1825283.jpg  
  inflating: Food_101/nachos/2734589.jpg  
  inflating: __MACOSX/Food_101/nachos/._2734589.jpg  
  inflating: Food_101/french_fries/1020588.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1020588.jpg  
  inflating: Food_101/french_fries/230015.jpg  
  inflating: __MACOSX/Food_101/french_fries/._230015.jpg  
  inflating: Food_101/french_fries/2338175.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2338175.jpg  
  inflating: Food_101/french_fries/3223668.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3223668.jpg  
  inflating: Food_101/french_fries/256347.jpg  
  inflating: __MACOSX/Food_101/french_fries/._256347.jpg  
  inflating: Food_101/french_fries/296611.jpg  
  inflating: __MACOSX/Food_101/french_fries/._296611.jpg  
  inflating: Food_101/french_fries/3907871.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3907871.jpg  
  inflating: Food_101/french_fries/3322990.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3322990.jpg  
  inflating: Food_101/french_fries/192632.jpg  
  inflating: __MACOSX/Food_101/french_fries/._192632.jpg  
  inflating: Food_101/french_fries/2382614.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2382614.jpg  
  inflating: Food_101/french_fries/1290768.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1290768.jpg  
  inflating: Food_101/french_fries/3289454.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3289454.jpg  
  inflating: Food_101/french_fries/3711767.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3711767.jpg  
  inflating: Food_101/french_fries/82535.jpg  
  inflating: __MACOSX/Food_101/french_fries/._82535.jpg  
  inflating: Food_101/french_fries/1936184.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1936184.jpg  
  inflating: Food_101/french_fries/3022848.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3022848.jpg  
  inflating: Food_101/french_fries/3784230.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3784230.jpg  
  inflating: Food_101/french_fries/3678935.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3678935.jpg  
  inflating: Food_101/french_fries/2278633.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2278633.jpg  
  inflating: Food_101/french_fries/3288825.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3288825.jpg  
  inflating: Food_101/french_fries/2907806.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2907806.jpg  
  inflating: Food_101/french_fries/2617942.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2617942.jpg  
  inflating: Food_101/french_fries/489152.jpg  
  inflating: __MACOSX/Food_101/french_fries/._489152.jpg  
  inflating: Food_101/french_fries/3319655.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3319655.jpg  
  inflating: Food_101/french_fries/1221000.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1221000.jpg  
  inflating: Food_101/french_fries/2239479.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2239479.jpg  
  inflating: Food_101/french_fries/2680169.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2680169.jpg  
  inflating: Food_101/french_fries/2249607.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2249607.jpg  
  inflating: Food_101/french_fries/2776614.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2776614.jpg  
  inflating: Food_101/french_fries/494329.jpg  
  inflating: __MACOSX/Food_101/french_fries/._494329.jpg  
  inflating: Food_101/french_fries/2278380.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2278380.jpg  
  inflating: Food_101/french_fries/3622622.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3622622.jpg  
  inflating: Food_101/french_fries/487354.jpg  
  inflating: __MACOSX/Food_101/french_fries/._487354.jpg  
  inflating: Food_101/french_fries/65608.jpg  
  inflating: __MACOSX/Food_101/french_fries/._65608.jpg  
  inflating: Food_101/french_fries/2056007.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2056007.jpg  
  inflating: Food_101/french_fries/2849981.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2849981.jpg  
  inflating: Food_101/french_fries/2146228.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2146228.jpg  
  inflating: Food_101/french_fries/657873.jpg  
  inflating: __MACOSX/Food_101/french_fries/._657873.jpg  
  inflating: Food_101/french_fries/1709793.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1709793.jpg  
  inflating: Food_101/french_fries/2615826.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2615826.jpg  
  inflating: Food_101/french_fries/1697346.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1697346.jpg  
  inflating: Food_101/french_fries/1958884.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1958884.jpg  
  inflating: Food_101/french_fries/1767923.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1767923.jpg  
  inflating: Food_101/french_fries/765816.jpg  
  inflating: __MACOSX/Food_101/french_fries/._765816.jpg  
  inflating: Food_101/french_fries/2627843.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2627843.jpg  
  inflating: Food_101/french_fries/3708237.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3708237.jpg  
  inflating: Food_101/french_fries/909325.jpg  
  inflating: __MACOSX/Food_101/french_fries/._909325.jpg  
  inflating: Food_101/french_fries/1577236.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1577236.jpg  
  inflating: Food_101/french_fries/2901457.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2901457.jpg  
  inflating: Food_101/french_fries/3423618.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3423618.jpg  
  inflating: Food_101/french_fries/2536896.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2536896.jpg  
  inflating: Food_101/french_fries/3099167.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3099167.jpg  
  inflating: Food_101/french_fries/3303220.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3303220.jpg  
  inflating: Food_101/french_fries/3754158.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3754158.jpg  
  inflating: Food_101/french_fries/51368.jpg  
  inflating: __MACOSX/Food_101/french_fries/._51368.jpg  
  inflating: Food_101/french_fries/3677959.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3677959.jpg  
  inflating: Food_101/french_fries/2040049.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2040049.jpg  
  inflating: Food_101/french_fries/1642141.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1642141.jpg  
  inflating: Food_101/french_fries/1327248.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1327248.jpg  
  inflating: Food_101/french_fries/3393816.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3393816.jpg  
  inflating: Food_101/french_fries/854381.jpg  
  inflating: __MACOSX/Food_101/french_fries/._854381.jpg  
  inflating: Food_101/french_fries/2550720.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2550720.jpg  
  inflating: Food_101/french_fries/1850835.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1850835.jpg  
  inflating: Food_101/french_fries/3081058.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3081058.jpg  
  inflating: Food_101/french_fries/1682173.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1682173.jpg  
  inflating: Food_101/french_fries/525330.jpg  
  inflating: __MACOSX/Food_101/french_fries/._525330.jpg  
  inflating: Food_101/french_fries/3152566.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3152566.jpg  
  inflating: Food_101/french_fries/914564.jpg  
  inflating: __MACOSX/Food_101/french_fries/._914564.jpg  
  inflating: Food_101/french_fries/2763839.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2763839.jpg  
  inflating: Food_101/french_fries/1009455.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1009455.jpg  
  inflating: Food_101/french_fries/3236925.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3236925.jpg  
  inflating: Food_101/french_fries/1035421.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1035421.jpg  
  inflating: Food_101/french_fries/1615596.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1615596.jpg  
  inflating: Food_101/french_fries/3897130.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3897130.jpg  
  inflating: Food_101/french_fries/3426819.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3426819.jpg  
  inflating: Food_101/french_fries/3253011.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3253011.jpg  
  inflating: Food_101/french_fries/2029410.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2029410.jpg  
  inflating: Food_101/french_fries/614545.jpg  
  inflating: __MACOSX/Food_101/french_fries/._614545.jpg  
  inflating: Food_101/french_fries/3483916.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3483916.jpg  
  inflating: Food_101/french_fries/612646.jpg  
  inflating: __MACOSX/Food_101/french_fries/._612646.jpg  
  inflating: Food_101/french_fries/2945149.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2945149.jpg  
  inflating: Food_101/french_fries/143685.jpg  
  inflating: __MACOSX/Food_101/french_fries/._143685.jpg  
  inflating: Food_101/french_fries/3194910.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3194910.jpg  
  inflating: Food_101/french_fries/2773035.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2773035.jpg  
  inflating: Food_101/french_fries/2414771.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2414771.jpg  
  inflating: Food_101/french_fries/3826077.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3826077.jpg  
  inflating: Food_101/french_fries/1776346.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1776346.jpg  
  inflating: Food_101/french_fries/2370084.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2370084.jpg  
  inflating: Food_101/french_fries/3048661.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3048661.jpg  
  inflating: Food_101/french_fries/578368.jpg  
  inflating: __MACOSX/Food_101/french_fries/._578368.jpg  
  inflating: Food_101/french_fries/338259.jpg  
  inflating: __MACOSX/Food_101/french_fries/._338259.jpg  
  inflating: Food_101/french_fries/2833974.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2833974.jpg  
  inflating: Food_101/french_fries/1341912.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1341912.jpg  
  inflating: Food_101/french_fries/3832957.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3832957.jpg  
  inflating: Food_101/french_fries/1653893.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1653893.jpg  
  inflating: Food_101/french_fries/1929717.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1929717.jpg  
  inflating: Food_101/french_fries/3621856.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3621856.jpg  
  inflating: Food_101/french_fries/349846.jpg  
  inflating: __MACOSX/Food_101/french_fries/._349846.jpg  
  inflating: Food_101/french_fries/705893.jpg  
  inflating: __MACOSX/Food_101/french_fries/._705893.jpg  
  inflating: Food_101/french_fries/166821.jpg  
  inflating: __MACOSX/Food_101/french_fries/._166821.jpg  
  inflating: Food_101/french_fries/2227296.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2227296.jpg  
  inflating: Food_101/french_fries/1243254.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1243254.jpg  
  inflating: Food_101/french_fries/3560911.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3560911.jpg  
  inflating: Food_101/french_fries/1008945.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1008945.jpg  
  inflating: Food_101/french_fries/2913911.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2913911.jpg  
  inflating: Food_101/french_fries/2586818.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2586818.jpg  
  inflating: Food_101/french_fries/669183.jpg  
  inflating: __MACOSX/Food_101/french_fries/._669183.jpg  
  inflating: Food_101/french_fries/50277.jpg  
  inflating: __MACOSX/Food_101/french_fries/._50277.jpg  
  inflating: Food_101/french_fries/2878424.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2878424.jpg  
  inflating: Food_101/french_fries/3359887.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3359887.jpg  
  inflating: Food_101/french_fries/1081387.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1081387.jpg  
  inflating: Food_101/french_fries/1708934.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1708934.jpg  
  inflating: Food_101/french_fries/913020.jpg  
  inflating: __MACOSX/Food_101/french_fries/._913020.jpg  
  inflating: Food_101/french_fries/211973.jpg  
  inflating: __MACOSX/Food_101/french_fries/._211973.jpg  
  inflating: Food_101/french_fries/2507866.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2507866.jpg  
  inflating: Food_101/french_fries/3759335.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3759335.jpg  
  inflating: Food_101/french_fries/1973780.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1973780.jpg  
  inflating: Food_101/french_fries/819521.jpg  
  inflating: __MACOSX/Food_101/french_fries/._819521.jpg  
  inflating: Food_101/french_fries/3663095.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3663095.jpg  
  inflating: Food_101/french_fries/1269687.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1269687.jpg  
  inflating: Food_101/french_fries/309651.jpg  
  inflating: __MACOSX/Food_101/french_fries/._309651.jpg  
  inflating: Food_101/french_fries/3254182.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3254182.jpg  
  inflating: Food_101/french_fries/2708723.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2708723.jpg  
  inflating: Food_101/french_fries/467106.jpg  
  inflating: __MACOSX/Food_101/french_fries/._467106.jpg  
  inflating: Food_101/french_fries/3620351.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3620351.jpg  
  inflating: Food_101/french_fries/416728.jpg  
  inflating: __MACOSX/Food_101/french_fries/._416728.jpg  
  inflating: Food_101/french_fries/1384733.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1384733.jpg  
  inflating: Food_101/french_fries/3724080.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3724080.jpg  
  inflating: Food_101/french_fries/52510.jpg  
  inflating: __MACOSX/Food_101/french_fries/._52510.jpg  
  inflating: Food_101/french_fries/2652203.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2652203.jpg  
  inflating: Food_101/french_fries/370033.jpg  
  inflating: __MACOSX/Food_101/french_fries/._370033.jpg  
  inflating: Food_101/french_fries/423630.jpg  
  inflating: __MACOSX/Food_101/french_fries/._423630.jpg  
  inflating: Food_101/french_fries/1257345.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1257345.jpg  
  inflating: Food_101/french_fries/24479.jpg  
  inflating: __MACOSX/Food_101/french_fries/._24479.jpg  
  inflating: Food_101/french_fries/3806837.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3806837.jpg  
  inflating: Food_101/french_fries/3764329.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3764329.jpg  
  inflating: Food_101/french_fries/1319764.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1319764.jpg  
  inflating: Food_101/french_fries/3567317.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3567317.jpg  
  inflating: Food_101/french_fries/799658.jpg  
  inflating: __MACOSX/Food_101/french_fries/._799658.jpg  
  inflating: Food_101/french_fries/2984923.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2984923.jpg  
  inflating: Food_101/french_fries/2596038.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2596038.jpg  
  inflating: Food_101/french_fries/3499988.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3499988.jpg  
  inflating: Food_101/french_fries/649848.jpg  
  inflating: __MACOSX/Food_101/french_fries/._649848.jpg  
  inflating: Food_101/french_fries/1959790.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1959790.jpg  
  inflating: Food_101/french_fries/2208648.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2208648.jpg  
  inflating: Food_101/french_fries/2502894.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2502894.jpg  
  inflating: Food_101/french_fries/872550.jpg  
  inflating: __MACOSX/Food_101/french_fries/._872550.jpg  
  inflating: Food_101/french_fries/3271075.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3271075.jpg  
  inflating: Food_101/french_fries/1528250.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1528250.jpg  
  inflating: Food_101/french_fries/1521274.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1521274.jpg  
  inflating: Food_101/french_fries/2521724.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2521724.jpg  
  inflating: Food_101/french_fries/1531073.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1531073.jpg  
  inflating: Food_101/french_fries/1810352.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1810352.jpg  
  inflating: Food_101/french_fries/43636.jpg  
  inflating: __MACOSX/Food_101/french_fries/._43636.jpg  
  inflating: Food_101/french_fries/302329.jpg  
  inflating: __MACOSX/Food_101/french_fries/._302329.jpg  
  inflating: Food_101/french_fries/925636.jpg  
  inflating: __MACOSX/Food_101/french_fries/._925636.jpg  
  inflating: Food_101/french_fries/1625531.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1625531.jpg  
  inflating: Food_101/french_fries/459162.jpg  
  inflating: __MACOSX/Food_101/french_fries/._459162.jpg  
  inflating: Food_101/french_fries/2394139.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2394139.jpg  
  inflating: Food_101/french_fries/2074075.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2074075.jpg  
  inflating: Food_101/french_fries/3051679.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3051679.jpg  
  inflating: Food_101/french_fries/2213917.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2213917.jpg  
  inflating: Food_101/french_fries/3724081.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3724081.jpg  
  inflating: Food_101/french_fries/3818349.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3818349.jpg  
  inflating: Food_101/french_fries/3297902.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3297902.jpg  
  inflating: Food_101/french_fries/1101970.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1101970.jpg  
  inflating: Food_101/french_fries/1198412.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1198412.jpg  
  inflating: Food_101/french_fries/109401.jpg  
  inflating: __MACOSX/Food_101/french_fries/._109401.jpg  
  inflating: Food_101/french_fries/2348318.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2348318.jpg  
  inflating: Food_101/french_fries/311779.jpg  
  inflating: __MACOSX/Food_101/french_fries/._311779.jpg  
  inflating: Food_101/french_fries/1681867.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1681867.jpg  
  inflating: Food_101/french_fries/2569827.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2569827.jpg  
  inflating: Food_101/french_fries/1875469.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1875469.jpg  
  inflating: Food_101/french_fries/110385.jpg  
  inflating: __MACOSX/Food_101/french_fries/._110385.jpg  
  inflating: Food_101/french_fries/2677445.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2677445.jpg  
  inflating: Food_101/french_fries/1958538.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1958538.jpg  
  inflating: Food_101/french_fries/889641.jpg  
  inflating: __MACOSX/Food_101/french_fries/._889641.jpg  
  inflating: Food_101/french_fries/3377570.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3377570.jpg  
  inflating: Food_101/french_fries/530277.jpg  
  inflating: __MACOSX/Food_101/french_fries/._530277.jpg  
  inflating: Food_101/french_fries/3195201.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3195201.jpg  
  inflating: Food_101/french_fries/2001007.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2001007.jpg  
  inflating: Food_101/french_fries/1564138.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1564138.jpg  
  inflating: Food_101/french_fries/2147046.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2147046.jpg  
  inflating: Food_101/french_fries/1703696.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1703696.jpg  
  inflating: Food_101/french_fries/3596528.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3596528.jpg  
  inflating: Food_101/french_fries/3762377.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3762377.jpg  
  inflating: Food_101/french_fries/2628143.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2628143.jpg  
  inflating: Food_101/french_fries/3437480.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3437480.jpg  
  inflating: Food_101/french_fries/1697975.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1697975.jpg  
  inflating: Food_101/french_fries/3194309.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3194309.jpg  
  inflating: Food_101/french_fries/1062594.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1062594.jpg  
  inflating: Food_101/french_fries/2761796.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2761796.jpg  
  inflating: Food_101/french_fries/3002343.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3002343.jpg  
  inflating: Food_101/french_fries/234706.jpg  
  inflating: __MACOSX/Food_101/french_fries/._234706.jpg  
  inflating: Food_101/french_fries/3291587.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3291587.jpg  
  inflating: Food_101/french_fries/348356.jpg  
  inflating: __MACOSX/Food_101/french_fries/._348356.jpg  
  inflating: Food_101/french_fries/2309622.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2309622.jpg  
  inflating: Food_101/french_fries/3401318.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3401318.jpg  
  inflating: Food_101/french_fries/2214673.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2214673.jpg  
  inflating: Food_101/french_fries/753350.jpg  
  inflating: __MACOSX/Food_101/french_fries/._753350.jpg  
  inflating: Food_101/french_fries/2814658.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2814658.jpg  
  inflating: Food_101/french_fries/1845621.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1845621.jpg  
  inflating: Food_101/french_fries/1364015.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1364015.jpg  
  inflating: Food_101/french_fries/3049746.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3049746.jpg  
  inflating: Food_101/french_fries/1008163.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1008163.jpg  
  inflating: Food_101/french_fries/353170.jpg  
  inflating: __MACOSX/Food_101/french_fries/._353170.jpg  
  inflating: Food_101/french_fries/1447440.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1447440.jpg  
  inflating: Food_101/french_fries/1251079.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1251079.jpg  
  inflating: Food_101/french_fries/340656.jpg  
  inflating: __MACOSX/Food_101/french_fries/._340656.jpg  
  inflating: Food_101/french_fries/1987038.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1987038.jpg  
  inflating: Food_101/french_fries/3427095.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3427095.jpg  
  inflating: Food_101/french_fries/3345305.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3345305.jpg  
  inflating: Food_101/french_fries/2515440.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2515440.jpg  
  inflating: Food_101/french_fries/3269823.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3269823.jpg  
  inflating: Food_101/french_fries/3625607.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3625607.jpg  
  inflating: Food_101/french_fries/80865.jpg  
  inflating: __MACOSX/Food_101/french_fries/._80865.jpg  
  inflating: Food_101/french_fries/1191743.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1191743.jpg  
  inflating: Food_101/french_fries/3062501.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3062501.jpg  
  inflating: Food_101/french_fries/2838364.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2838364.jpg  
  inflating: Food_101/french_fries/1778153.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1778153.jpg  
  inflating: Food_101/french_fries/114269.jpg  
  inflating: __MACOSX/Food_101/french_fries/._114269.jpg  
  inflating: Food_101/french_fries/3375984.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3375984.jpg  
  inflating: Food_101/french_fries/1888134.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1888134.jpg  
  inflating: Food_101/french_fries/883838.jpg  
  inflating: __MACOSX/Food_101/french_fries/._883838.jpg  
  inflating: Food_101/french_fries/1074446.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1074446.jpg  
  inflating: Food_101/french_fries/1026314.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1026314.jpg  
  inflating: Food_101/french_fries/2454970.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2454970.jpg  
  inflating: Food_101/french_fries/1816442.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1816442.jpg  
  inflating: Food_101/french_fries/1523716.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1523716.jpg  
  inflating: Food_101/french_fries/3221251.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3221251.jpg  
  inflating: Food_101/french_fries/370151.jpg  
  inflating: __MACOSX/Food_101/french_fries/._370151.jpg  
  inflating: Food_101/french_fries/1855221.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1855221.jpg  
  inflating: Food_101/french_fries/338101.jpg  
  inflating: __MACOSX/Food_101/french_fries/._338101.jpg  
  inflating: Food_101/french_fries/575528.jpg  
  inflating: __MACOSX/Food_101/french_fries/._575528.jpg  
  inflating: Food_101/french_fries/2624022.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2624022.jpg  
  inflating: Food_101/french_fries/2493036.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2493036.jpg  
  inflating: Food_101/french_fries/1238390.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1238390.jpg  
  inflating: Food_101/french_fries/2219197.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2219197.jpg  
  inflating: Food_101/french_fries/478232.jpg  
  inflating: __MACOSX/Food_101/french_fries/._478232.jpg  
  inflating: Food_101/french_fries/549936.jpg  
  inflating: __MACOSX/Food_101/french_fries/._549936.jpg  
  inflating: Food_101/french_fries/1469308.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1469308.jpg  
  inflating: Food_101/french_fries/2249089.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2249089.jpg  
  inflating: Food_101/french_fries/622646.jpg  
  inflating: __MACOSX/Food_101/french_fries/._622646.jpg  
  inflating: Food_101/french_fries/631606.jpg  
  inflating: __MACOSX/Food_101/french_fries/._631606.jpg  
  inflating: Food_101/french_fries/3843922.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3843922.jpg  
  inflating: Food_101/french_fries/2154538.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2154538.jpg  
  inflating: Food_101/french_fries/107312.jpg  
  inflating: __MACOSX/Food_101/french_fries/._107312.jpg  
  inflating: Food_101/french_fries/3681263.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3681263.jpg  
  inflating: Food_101/french_fries/2528360.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2528360.jpg  
  inflating: Food_101/french_fries/946518.jpg  
  inflating: __MACOSX/Food_101/french_fries/._946518.jpg  
  inflating: Food_101/french_fries/1199754.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1199754.jpg  
  inflating: Food_101/french_fries/3708309.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3708309.jpg  
  inflating: Food_101/french_fries/2246621.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2246621.jpg  
  inflating: Food_101/french_fries/1732161.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1732161.jpg  
  inflating: Food_101/french_fries/2072514.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2072514.jpg  
  inflating: Food_101/french_fries/3037407.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3037407.jpg  
  inflating: Food_101/french_fries/1064632.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1064632.jpg  
  inflating: Food_101/french_fries/3071320.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3071320.jpg  
  inflating: Food_101/french_fries/602637.jpg  
  inflating: __MACOSX/Food_101/french_fries/._602637.jpg  
  inflating: Food_101/french_fries/3709611.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3709611.jpg  
  inflating: Food_101/french_fries/3342829.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3342829.jpg  
  inflating: Food_101/french_fries/3880376.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3880376.jpg  
  inflating: Food_101/french_fries/605616.jpg  
  inflating: __MACOSX/Food_101/french_fries/._605616.jpg  
  inflating: Food_101/french_fries/2315325.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2315325.jpg  
  inflating: Food_101/french_fries/3583553.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3583553.jpg  
  inflating: Food_101/french_fries/3384067.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3384067.jpg  
  inflating: Food_101/french_fries/854901.jpg  
  inflating: __MACOSX/Food_101/french_fries/._854901.jpg  
  inflating: Food_101/french_fries/1388756.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1388756.jpg  
  inflating: Food_101/french_fries/2502370.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2502370.jpg  
  inflating: Food_101/french_fries/2959500.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2959500.jpg  
  inflating: Food_101/french_fries/3552493.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3552493.jpg  
  inflating: Food_101/french_fries/2696740.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2696740.jpg  
  inflating: Food_101/french_fries/1703753.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1703753.jpg  
  inflating: Food_101/french_fries/2195953.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2195953.jpg  
  inflating: Food_101/french_fries/828160.jpg  
  inflating: __MACOSX/Food_101/french_fries/._828160.jpg  
  inflating: Food_101/french_fries/212348.jpg  
  inflating: __MACOSX/Food_101/french_fries/._212348.jpg  
  inflating: Food_101/french_fries/2644820.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2644820.jpg  
  inflating: Food_101/french_fries/2449370.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2449370.jpg  
  inflating: Food_101/french_fries/590677.jpg  
  inflating: __MACOSX/Food_101/french_fries/._590677.jpg  
  inflating: Food_101/french_fries/2881817.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2881817.jpg  
  inflating: Food_101/french_fries/2879174.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2879174.jpg  
  inflating: Food_101/french_fries/3728345.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3728345.jpg  
  inflating: Food_101/french_fries/2001882.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2001882.jpg  
  inflating: Food_101/french_fries/2630804.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2630804.jpg  
  inflating: Food_101/french_fries/2015613.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2015613.jpg  
  inflating: Food_101/french_fries/1264270.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1264270.jpg  
  inflating: Food_101/french_fries/3368541.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3368541.jpg  
  inflating: Food_101/french_fries/2875570.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2875570.jpg  
  inflating: Food_101/french_fries/3659782.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3659782.jpg  
  inflating: Food_101/french_fries/2740844.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2740844.jpg  
  inflating: Food_101/french_fries/2661646.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2661646.jpg  
  inflating: Food_101/french_fries/1593676.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1593676.jpg  
  inflating: Food_101/french_fries/758504.jpg  
  inflating: __MACOSX/Food_101/french_fries/._758504.jpg  
  inflating: Food_101/french_fries/2250693.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2250693.jpg  
  inflating: Food_101/french_fries/3370087.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3370087.jpg  
  inflating: Food_101/french_fries/2823656.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2823656.jpg  
  inflating: Food_101/french_fries/581356.jpg  
  inflating: __MACOSX/Food_101/french_fries/._581356.jpg  
  inflating: Food_101/french_fries/168924.jpg  
  inflating: __MACOSX/Food_101/french_fries/._168924.jpg  
  inflating: Food_101/french_fries/3751241.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3751241.jpg  
  inflating: Food_101/french_fries/258877.jpg  
  inflating: __MACOSX/Food_101/french_fries/._258877.jpg  
  inflating: Food_101/french_fries/923140.jpg  
  inflating: __MACOSX/Food_101/french_fries/._923140.jpg  
  inflating: Food_101/french_fries/872441.jpg  
  inflating: __MACOSX/Food_101/french_fries/._872441.jpg  
  inflating: Food_101/french_fries/3329455.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3329455.jpg  
  inflating: Food_101/french_fries/839871.jpg  
  inflating: __MACOSX/Food_101/french_fries/._839871.jpg  
  inflating: Food_101/french_fries/1937830.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1937830.jpg  
  inflating: Food_101/french_fries/3881337.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3881337.jpg  
  inflating: Food_101/french_fries/3813899.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3813899.jpg  
  inflating: Food_101/french_fries/2246387.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2246387.jpg  
  inflating: Food_101/french_fries/1083531.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1083531.jpg  
  inflating: Food_101/french_fries/2565707.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2565707.jpg  
  inflating: Food_101/french_fries/1394977.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1394977.jpg  
  inflating: Food_101/french_fries/3569228.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3569228.jpg  
  inflating: Food_101/french_fries/798454.jpg  
  inflating: __MACOSX/Food_101/french_fries/._798454.jpg  
  inflating: Food_101/french_fries/2527291.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2527291.jpg  
  inflating: Food_101/french_fries/3684873.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3684873.jpg  
  inflating: Food_101/french_fries/2649282.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2649282.jpg  
  inflating: Food_101/french_fries/357993.jpg  
  inflating: __MACOSX/Food_101/french_fries/._357993.jpg  
  inflating: Food_101/french_fries/1273478.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1273478.jpg  
  inflating: Food_101/french_fries/3327888.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3327888.jpg  
  inflating: Food_101/french_fries/1555814.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1555814.jpg  
  inflating: Food_101/french_fries/806895.jpg  
  inflating: __MACOSX/Food_101/french_fries/._806895.jpg  
  inflating: Food_101/french_fries/820107.jpg  
  inflating: __MACOSX/Food_101/french_fries/._820107.jpg  
  inflating: Food_101/french_fries/3240152.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3240152.jpg  
  inflating: Food_101/french_fries/560182.jpg  
  inflating: __MACOSX/Food_101/french_fries/._560182.jpg  
  inflating: Food_101/french_fries/2080959.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2080959.jpg  
  inflating: Food_101/french_fries/1439886.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1439886.jpg  
  inflating: Food_101/french_fries/3543947.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3543947.jpg  
  inflating: Food_101/french_fries/1475332.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1475332.jpg  
  inflating: Food_101/french_fries/3688324.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3688324.jpg  
  inflating: Food_101/french_fries/3246331.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3246331.jpg  
  inflating: Food_101/french_fries/1129645.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1129645.jpg  
  inflating: Food_101/french_fries/3832935.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3832935.jpg  
  inflating: Food_101/french_fries/403790.jpg  
  inflating: __MACOSX/Food_101/french_fries/._403790.jpg  
  inflating: Food_101/french_fries/696257.jpg  
  inflating: __MACOSX/Food_101/french_fries/._696257.jpg  
  inflating: Food_101/french_fries/333385.jpg  
  inflating: __MACOSX/Food_101/french_fries/._333385.jpg  
  inflating: Food_101/french_fries/628220.jpg  
  inflating: __MACOSX/Food_101/french_fries/._628220.jpg  
  inflating: Food_101/french_fries/1295274.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1295274.jpg  
  inflating: Food_101/french_fries/2858185.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2858185.jpg  
  inflating: Food_101/french_fries/2062301.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2062301.jpg  
  inflating: Food_101/french_fries/3660458.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3660458.jpg  
  inflating: Food_101/french_fries/2714782.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2714782.jpg  
  inflating: Food_101/french_fries/2050364.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2050364.jpg  
  inflating: Food_101/french_fries/3549099.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3549099.jpg  
  inflating: Food_101/french_fries/2952319.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2952319.jpg  
  inflating: Food_101/french_fries/3673168.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3673168.jpg  
  inflating: Food_101/french_fries/778600.jpg  
  inflating: __MACOSX/Food_101/french_fries/._778600.jpg  
  inflating: Food_101/french_fries/2298765.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2298765.jpg  
  inflating: Food_101/french_fries/2972546.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2972546.jpg  
  inflating: Food_101/french_fries/3010680.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3010680.jpg  
  inflating: Food_101/french_fries/2464961.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2464961.jpg  
  inflating: Food_101/french_fries/655989.jpg  
  inflating: __MACOSX/Food_101/french_fries/._655989.jpg  
  inflating: Food_101/french_fries/2269039.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2269039.jpg  
  inflating: Food_101/french_fries/2515183.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2515183.jpg  
  inflating: Food_101/french_fries/106608.jpg  
  inflating: __MACOSX/Food_101/french_fries/._106608.jpg  
  inflating: Food_101/french_fries/950224.jpg  
  inflating: __MACOSX/Food_101/french_fries/._950224.jpg  
  inflating: Food_101/french_fries/510464.jpg  
  inflating: __MACOSX/Food_101/french_fries/._510464.jpg  
  inflating: Food_101/french_fries/391321.jpg  
  inflating: __MACOSX/Food_101/french_fries/._391321.jpg  
  inflating: Food_101/french_fries/963995.jpg  
  inflating: __MACOSX/Food_101/french_fries/._963995.jpg  
  inflating: Food_101/french_fries/850387.jpg  
  inflating: __MACOSX/Food_101/french_fries/._850387.jpg  
  inflating: Food_101/french_fries/782182.jpg  
  inflating: __MACOSX/Food_101/french_fries/._782182.jpg  
  inflating: Food_101/french_fries/3870681.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3870681.jpg  
  inflating: Food_101/french_fries/2897469.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2897469.jpg  
  inflating: Food_101/french_fries/859412.jpg  
  inflating: __MACOSX/Food_101/french_fries/._859412.jpg  
  inflating: Food_101/french_fries/51678.jpg  
  inflating: __MACOSX/Food_101/french_fries/._51678.jpg  
  inflating: Food_101/french_fries/619413.jpg  
  inflating: __MACOSX/Food_101/french_fries/._619413.jpg  
  inflating: Food_101/french_fries/290229.jpg  
  inflating: __MACOSX/Food_101/french_fries/._290229.jpg  
  inflating: Food_101/french_fries/293052.jpg  
  inflating: __MACOSX/Food_101/french_fries/._293052.jpg  
  inflating: Food_101/french_fries/2967215.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2967215.jpg  
  inflating: Food_101/french_fries/2217120.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2217120.jpg  
  inflating: Food_101/french_fries/1636661.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1636661.jpg  
  inflating: Food_101/french_fries/3012487.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3012487.jpg  
  inflating: Food_101/french_fries/2169308.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2169308.jpg  
  inflating: Food_101/french_fries/2331134.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2331134.jpg  
  inflating: Food_101/french_fries/3338239.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3338239.jpg  
  inflating: Food_101/french_fries/238410.jpg  
  inflating: __MACOSX/Food_101/french_fries/._238410.jpg  
  inflating: Food_101/french_fries/3199467.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3199467.jpg  
  inflating: Food_101/french_fries/697986.jpg  
  inflating: __MACOSX/Food_101/french_fries/._697986.jpg  
  inflating: Food_101/french_fries/344097.jpg  
  inflating: __MACOSX/Food_101/french_fries/._344097.jpg  
  inflating: Food_101/french_fries/3198786.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3198786.jpg  
  inflating: Food_101/french_fries/3507251.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3507251.jpg  
  inflating: Food_101/french_fries/2781602.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2781602.jpg  
  inflating: Food_101/french_fries/1850310.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1850310.jpg  
  inflating: Food_101/french_fries/3063044.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3063044.jpg  
  inflating: Food_101/french_fries/2828062.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2828062.jpg  
  inflating: Food_101/french_fries/57594.jpg  
  inflating: __MACOSX/Food_101/french_fries/._57594.jpg  
  inflating: Food_101/french_fries/1926251.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1926251.jpg  
  inflating: Food_101/french_fries/204100.jpg  
  inflating: __MACOSX/Food_101/french_fries/._204100.jpg  
  inflating: Food_101/french_fries/152498.jpg  
  inflating: __MACOSX/Food_101/french_fries/._152498.jpg  
  inflating: Food_101/french_fries/3114409.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3114409.jpg  
  inflating: Food_101/french_fries/3697215.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3697215.jpg  
  inflating: Food_101/french_fries/2572849.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2572849.jpg  
  inflating: Food_101/french_fries/2039103.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2039103.jpg  
  inflating: Food_101/french_fries/774764.jpg  
  inflating: __MACOSX/Food_101/french_fries/._774764.jpg  
  inflating: Food_101/french_fries/2807320.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2807320.jpg  
  inflating: Food_101/french_fries/2576150.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2576150.jpg  
  inflating: Food_101/french_fries/1772806.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1772806.jpg  
  inflating: Food_101/french_fries/2239352.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2239352.jpg  
  inflating: Food_101/french_fries/112309.jpg  
  inflating: __MACOSX/Food_101/french_fries/._112309.jpg  
  inflating: Food_101/french_fries/3396115.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3396115.jpg  
  inflating: Food_101/french_fries/2128557.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2128557.jpg  
  inflating: Food_101/french_fries/3102929.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3102929.jpg  
  inflating: Food_101/french_fries/2029107.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2029107.jpg  
  inflating: Food_101/french_fries/3323977.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3323977.jpg  
  inflating: Food_101/french_fries/3021100.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3021100.jpg  
  inflating: Food_101/french_fries/1133382.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1133382.jpg  
  inflating: Food_101/french_fries/267713.jpg  
  inflating: __MACOSX/Food_101/french_fries/._267713.jpg  
  inflating: Food_101/french_fries/3794090.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3794090.jpg  
  inflating: Food_101/french_fries/3795403.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3795403.jpg  
  inflating: Food_101/french_fries/275673.jpg  
  inflating: __MACOSX/Food_101/french_fries/._275673.jpg  
  inflating: Food_101/french_fries/2920371.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2920371.jpg  
  inflating: Food_101/french_fries/251128.jpg  
  inflating: __MACOSX/Food_101/french_fries/._251128.jpg  
  inflating: Food_101/french_fries/3765135.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3765135.jpg  
  inflating: Food_101/french_fries/498167.jpg  
  inflating: __MACOSX/Food_101/french_fries/._498167.jpg  
  inflating: Food_101/french_fries/3661409.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3661409.jpg  
  inflating: Food_101/french_fries/796870.jpg  
  inflating: __MACOSX/Food_101/french_fries/._796870.jpg  
  inflating: Food_101/french_fries/2902107.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2902107.jpg  
  inflating: Food_101/french_fries/3790341.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3790341.jpg  
  inflating: Food_101/french_fries/3285020.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3285020.jpg  
  inflating: Food_101/french_fries/2816416.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2816416.jpg  
  inflating: Food_101/french_fries/149278.jpg  
  inflating: __MACOSX/Food_101/french_fries/._149278.jpg  
  inflating: Food_101/french_fries/1495836.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1495836.jpg  
  inflating: Food_101/french_fries/1617899.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1617899.jpg  
  inflating: Food_101/french_fries/546394.jpg  
  inflating: __MACOSX/Food_101/french_fries/._546394.jpg  
  inflating: Food_101/french_fries/2371507.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2371507.jpg  
  inflating: Food_101/french_fries/3574519.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3574519.jpg  
  inflating: Food_101/french_fries/904510.jpg  
  inflating: __MACOSX/Food_101/french_fries/._904510.jpg  
  inflating: Food_101/french_fries/1093724.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1093724.jpg  
  inflating: Food_101/french_fries/3586758.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3586758.jpg  
  inflating: Food_101/french_fries/3002687.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3002687.jpg  
  inflating: Food_101/french_fries/751336.jpg  
  inflating: __MACOSX/Food_101/french_fries/._751336.jpg  
  inflating: Food_101/french_fries/397794.jpg  
  inflating: __MACOSX/Food_101/french_fries/._397794.jpg  
  inflating: Food_101/french_fries/796641.jpg  
  inflating: __MACOSX/Food_101/french_fries/._796641.jpg  
  inflating: Food_101/french_fries/1337228.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1337228.jpg  
  inflating: Food_101/french_fries/2989888.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2989888.jpg  
  inflating: Food_101/french_fries/2664896.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2664896.jpg  
  inflating: Food_101/french_fries/3153806.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3153806.jpg  
  inflating: Food_101/french_fries/292607.jpg  
  inflating: __MACOSX/Food_101/french_fries/._292607.jpg  
  inflating: Food_101/french_fries/3528931.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3528931.jpg  
  inflating: Food_101/french_fries/3688281.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3688281.jpg  
  inflating: Food_101/french_fries/322067.jpg  
  inflating: __MACOSX/Food_101/french_fries/._322067.jpg  
  inflating: Food_101/french_fries/528711.jpg  
  inflating: __MACOSX/Food_101/french_fries/._528711.jpg  
  inflating: Food_101/french_fries/1424609.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1424609.jpg  
  inflating: Food_101/french_fries/573932.jpg  
  inflating: __MACOSX/Food_101/french_fries/._573932.jpg  
  inflating: Food_101/french_fries/1582025.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1582025.jpg  
  inflating: Food_101/french_fries/1132539.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1132539.jpg  
  inflating: Food_101/french_fries/3635674.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3635674.jpg  
  inflating: Food_101/french_fries/2215693.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2215693.jpg  
  inflating: Food_101/french_fries/1453873.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1453873.jpg  
  inflating: Food_101/french_fries/164288.jpg  
  inflating: __MACOSX/Food_101/french_fries/._164288.jpg  
  inflating: Food_101/french_fries/146029.jpg  
  inflating: __MACOSX/Food_101/french_fries/._146029.jpg  
  inflating: Food_101/french_fries/3171053.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3171053.jpg  
  inflating: Food_101/french_fries/3484006.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3484006.jpg  
  inflating: Food_101/french_fries/80190.jpg  
  inflating: __MACOSX/Food_101/french_fries/._80190.jpg  
  inflating: Food_101/french_fries/1580419.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1580419.jpg  
  inflating: Food_101/french_fries/1346017.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1346017.jpg  
  inflating: Food_101/french_fries/3243064.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3243064.jpg  
  inflating: Food_101/french_fries/2592571.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2592571.jpg  
  inflating: Food_101/french_fries/2406476.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2406476.jpg  
  inflating: Food_101/french_fries/3745147.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3745147.jpg  
  inflating: Food_101/french_fries/1197437.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1197437.jpg  
  inflating: Food_101/french_fries/1267026.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1267026.jpg  
  inflating: Food_101/french_fries/2271466.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2271466.jpg  
  inflating: Food_101/french_fries/3343500.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3343500.jpg  
  inflating: Food_101/french_fries/3069345.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3069345.jpg  
  inflating: Food_101/french_fries/848492.jpg  
  inflating: __MACOSX/Food_101/french_fries/._848492.jpg  
  inflating: Food_101/french_fries/2279576.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2279576.jpg  
  inflating: Food_101/french_fries/1426779.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1426779.jpg  
  inflating: Food_101/french_fries/2078820.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2078820.jpg  
  inflating: Food_101/french_fries/1290860.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1290860.jpg  
  inflating: Food_101/french_fries/2860811.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2860811.jpg  
  inflating: Food_101/french_fries/3084187.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3084187.jpg  
  inflating: Food_101/french_fries/60306.jpg  
  inflating: __MACOSX/Food_101/french_fries/._60306.jpg  
  inflating: Food_101/french_fries/2343991.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2343991.jpg  
  inflating: Food_101/french_fries/575211.jpg  
  inflating: __MACOSX/Food_101/french_fries/._575211.jpg  
  inflating: Food_101/french_fries/1656352.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1656352.jpg  
  inflating: Food_101/french_fries/577360.jpg  
  inflating: __MACOSX/Food_101/french_fries/._577360.jpg  
  inflating: Food_101/french_fries/108743.jpg  
  inflating: __MACOSX/Food_101/french_fries/._108743.jpg  
  inflating: Food_101/french_fries/274368.jpg  
  inflating: __MACOSX/Food_101/french_fries/._274368.jpg  
  inflating: Food_101/french_fries/2951206.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2951206.jpg  
  inflating: Food_101/french_fries/3310979.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3310979.jpg  
  inflating: Food_101/french_fries/1080215.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1080215.jpg  
  inflating: Food_101/french_fries/85375.jpg  
  inflating: __MACOSX/Food_101/french_fries/._85375.jpg  
  inflating: Food_101/french_fries/885543.jpg  
  inflating: __MACOSX/Food_101/french_fries/._885543.jpg  
  inflating: Food_101/french_fries/2490548.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2490548.jpg  
  inflating: Food_101/french_fries/2041482.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2041482.jpg  
  inflating: Food_101/french_fries/194973.jpg  
  inflating: __MACOSX/Food_101/french_fries/._194973.jpg  
  inflating: Food_101/french_fries/1596441.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1596441.jpg  
  inflating: Food_101/french_fries/1060646.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1060646.jpg  
  inflating: Food_101/french_fries/2293554.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2293554.jpg  
  inflating: Food_101/french_fries/2596850.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2596850.jpg  
  inflating: Food_101/french_fries/744510.jpg  
  inflating: __MACOSX/Food_101/french_fries/._744510.jpg  
  inflating: Food_101/french_fries/773394.jpg  
  inflating: __MACOSX/Food_101/french_fries/._773394.jpg  
  inflating: Food_101/french_fries/1974930.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1974930.jpg  
  inflating: Food_101/french_fries/2991239.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2991239.jpg  
  inflating: Food_101/french_fries/1898017.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1898017.jpg  
  inflating: Food_101/french_fries/1676299.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1676299.jpg  
  inflating: Food_101/french_fries/457240.jpg  
  inflating: __MACOSX/Food_101/french_fries/._457240.jpg  
  inflating: Food_101/french_fries/2830352.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2830352.jpg  
  inflating: Food_101/french_fries/1763119.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1763119.jpg  
  inflating: Food_101/french_fries/2073415.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2073415.jpg  
  inflating: Food_101/french_fries/2398418.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2398418.jpg  
  inflating: Food_101/french_fries/3393664.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3393664.jpg  
  inflating: Food_101/french_fries/1033213.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1033213.jpg  
  inflating: Food_101/french_fries/391896.jpg  
  inflating: __MACOSX/Food_101/french_fries/._391896.jpg  
  inflating: Food_101/french_fries/3061304.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3061304.jpg  
  inflating: Food_101/french_fries/1116093.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1116093.jpg  
  inflating: Food_101/french_fries/409314.jpg  
  inflating: __MACOSX/Food_101/french_fries/._409314.jpg  
  inflating: Food_101/french_fries/2936284.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2936284.jpg  
  inflating: Food_101/french_fries/320734.jpg  
  inflating: __MACOSX/Food_101/french_fries/._320734.jpg  
  inflating: Food_101/french_fries/3435993.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3435993.jpg  
  inflating: Food_101/french_fries/571720.jpg  
  inflating: __MACOSX/Food_101/french_fries/._571720.jpg  
  inflating: Food_101/french_fries/1855501.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1855501.jpg  
  inflating: Food_101/french_fries/2993823.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2993823.jpg  
  inflating: Food_101/french_fries/2676252.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2676252.jpg  
  inflating: Food_101/french_fries/1509620.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1509620.jpg  
  inflating: Food_101/french_fries/553218.jpg  
  inflating: __MACOSX/Food_101/french_fries/._553218.jpg  
  inflating: Food_101/french_fries/3262272.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3262272.jpg  
  inflating: Food_101/french_fries/3673822.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3673822.jpg  
  inflating: Food_101/french_fries/233172.jpg  
  inflating: __MACOSX/Food_101/french_fries/._233172.jpg  
  inflating: Food_101/french_fries/200553.jpg  
  inflating: __MACOSX/Food_101/french_fries/._200553.jpg  
  inflating: Food_101/french_fries/443143.jpg  
  inflating: __MACOSX/Food_101/french_fries/._443143.jpg  
  inflating: Food_101/french_fries/1348209.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1348209.jpg  
  inflating: Food_101/french_fries/580652.jpg  
  inflating: __MACOSX/Food_101/french_fries/._580652.jpg  
  inflating: Food_101/french_fries/3420756.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3420756.jpg  
  inflating: Food_101/french_fries/3058426.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3058426.jpg  
  inflating: Food_101/french_fries/491207.jpg  
  inflating: __MACOSX/Food_101/french_fries/._491207.jpg  
  inflating: Food_101/french_fries/2348229.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2348229.jpg  
  inflating: Food_101/french_fries/3167615.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3167615.jpg  
  inflating: Food_101/french_fries/82946.jpg  
  inflating: __MACOSX/Food_101/french_fries/._82946.jpg  
  inflating: Food_101/french_fries/2042971.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2042971.jpg  
  inflating: Food_101/french_fries/3323039.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3323039.jpg  
  inflating: Food_101/french_fries/2521012.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2521012.jpg  
  inflating: Food_101/french_fries/2901987.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2901987.jpg  
  inflating: Food_101/french_fries/266364.jpg  
  inflating: __MACOSX/Food_101/french_fries/._266364.jpg  
  inflating: Food_101/french_fries/1571407.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1571407.jpg  
  inflating: Food_101/french_fries/2150187.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2150187.jpg  
  inflating: Food_101/french_fries/587882.jpg  
  inflating: __MACOSX/Food_101/french_fries/._587882.jpg  
  inflating: Food_101/french_fries/3830442.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3830442.jpg  
  inflating: Food_101/french_fries/2873652.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2873652.jpg  
  inflating: Food_101/french_fries/3307428.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3307428.jpg  
  inflating: Food_101/french_fries/2828656.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2828656.jpg  
  inflating: Food_101/french_fries/389410.jpg  
  inflating: __MACOSX/Food_101/french_fries/._389410.jpg  
  inflating: Food_101/french_fries/1928448.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1928448.jpg  
  inflating: Food_101/french_fries/607021.jpg  
  inflating: __MACOSX/Food_101/french_fries/._607021.jpg  
  inflating: Food_101/french_fries/3654244.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3654244.jpg  
  inflating: Food_101/french_fries/3284906.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3284906.jpg  
  inflating: Food_101/french_fries/868941.jpg  
  inflating: __MACOSX/Food_101/french_fries/._868941.jpg  
  inflating: Food_101/french_fries/2369999.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2369999.jpg  
  inflating: Food_101/french_fries/1209297.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1209297.jpg  
  inflating: Food_101/french_fries/204132.jpg  
  inflating: __MACOSX/Food_101/french_fries/._204132.jpg  
  inflating: Food_101/french_fries/2885926.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2885926.jpg  
  inflating: Food_101/french_fries/1112960.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1112960.jpg  
  inflating: Food_101/french_fries/483574.jpg  
  inflating: __MACOSX/Food_101/french_fries/._483574.jpg  
  inflating: Food_101/french_fries/3370703.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3370703.jpg  
  inflating: Food_101/french_fries/2528368.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2528368.jpg  
  inflating: Food_101/french_fries/3893262.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3893262.jpg  
  inflating: Food_101/french_fries/2361094.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2361094.jpg  
  inflating: Food_101/french_fries/17394.jpg  
  inflating: __MACOSX/Food_101/french_fries/._17394.jpg  
  inflating: Food_101/french_fries/3258500.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3258500.jpg  
  inflating: Food_101/french_fries/505261.jpg  
  inflating: __MACOSX/Food_101/french_fries/._505261.jpg  
  inflating: Food_101/french_fries/674434.jpg  
  inflating: __MACOSX/Food_101/french_fries/._674434.jpg  
  inflating: Food_101/french_fries/2672237.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2672237.jpg  
  inflating: Food_101/french_fries/177372.jpg  
  inflating: __MACOSX/Food_101/french_fries/._177372.jpg  
  inflating: Food_101/french_fries/2783225.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2783225.jpg  
  inflating: Food_101/french_fries/1480588.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1480588.jpg  
  inflating: Food_101/french_fries/2780060.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2780060.jpg  
  inflating: Food_101/french_fries/1606755.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1606755.jpg  
  inflating: Food_101/french_fries/3817404.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3817404.jpg  
  inflating: Food_101/french_fries/1897333.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1897333.jpg  
  inflating: Food_101/french_fries/474317.jpg  
  inflating: __MACOSX/Food_101/french_fries/._474317.jpg  
  inflating: Food_101/french_fries/87020.jpg  
  inflating: __MACOSX/Food_101/french_fries/._87020.jpg  
  inflating: Food_101/french_fries/143994.jpg  
  inflating: __MACOSX/Food_101/french_fries/._143994.jpg  
  inflating: Food_101/french_fries/2982285.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2982285.jpg  
  inflating: Food_101/french_fries/2762026.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2762026.jpg  
  inflating: Food_101/french_fries/3139636.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3139636.jpg  
  inflating: Food_101/french_fries/3894916.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3894916.jpg  
  inflating: Food_101/french_fries/3303248.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3303248.jpg  
  inflating: Food_101/french_fries/1102783.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1102783.jpg  
  inflating: Food_101/french_fries/200168.jpg  
  inflating: __MACOSX/Food_101/french_fries/._200168.jpg  
  inflating: Food_101/french_fries/1901621.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1901621.jpg  
  inflating: Food_101/french_fries/1078563.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1078563.jpg  
  inflating: Food_101/french_fries/3252577.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3252577.jpg  
  inflating: Food_101/french_fries/1306987.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1306987.jpg  
  inflating: Food_101/french_fries/3327856.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3327856.jpg  
  inflating: Food_101/french_fries/3053028.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3053028.jpg  
  inflating: Food_101/french_fries/3029784.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3029784.jpg  
  inflating: Food_101/french_fries/203924.jpg  
  inflating: __MACOSX/Food_101/french_fries/._203924.jpg  
  inflating: Food_101/french_fries/2045577.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2045577.jpg  
  inflating: Food_101/french_fries/2325575.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2325575.jpg  
  inflating: Food_101/french_fries/1504529.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1504529.jpg  
  inflating: Food_101/french_fries/3598151.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3598151.jpg  
  inflating: Food_101/french_fries/2846402.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2846402.jpg  
  inflating: Food_101/french_fries/1905719.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1905719.jpg  
  inflating: Food_101/french_fries/1987068.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1987068.jpg  
  inflating: Food_101/french_fries/290382.jpg  
  inflating: __MACOSX/Food_101/french_fries/._290382.jpg  
  inflating: Food_101/french_fries/262882.jpg  
  inflating: __MACOSX/Food_101/french_fries/._262882.jpg  
  inflating: Food_101/french_fries/93653.jpg  
  inflating: __MACOSX/Food_101/french_fries/._93653.jpg  
  inflating: Food_101/french_fries/2958833.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2958833.jpg  
  inflating: Food_101/french_fries/1928660.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1928660.jpg  
  inflating: Food_101/french_fries/2821467.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2821467.jpg  
  inflating: Food_101/french_fries/1219252.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1219252.jpg  
  inflating: Food_101/french_fries/3069835.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3069835.jpg  
  inflating: Food_101/french_fries/845350.jpg  
  inflating: __MACOSX/Food_101/french_fries/._845350.jpg  
  inflating: Food_101/french_fries/2903605.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2903605.jpg  
  inflating: Food_101/french_fries/1740113.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1740113.jpg  
  inflating: Food_101/french_fries/1622796.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1622796.jpg  
  inflating: Food_101/french_fries/2823700.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2823700.jpg  
  inflating: Food_101/french_fries/3324580.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3324580.jpg  
  inflating: Food_101/french_fries/720462.jpg  
  inflating: __MACOSX/Food_101/french_fries/._720462.jpg  
  inflating: Food_101/french_fries/2345519.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2345519.jpg  
  inflating: Food_101/french_fries/2755270.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2755270.jpg  
  inflating: Food_101/french_fries/2551910.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2551910.jpg  
  inflating: Food_101/french_fries/63947.jpg  
  inflating: __MACOSX/Food_101/french_fries/._63947.jpg  
  inflating: Food_101/french_fries/1712331.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1712331.jpg  
  inflating: Food_101/french_fries/1610240.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1610240.jpg  
  inflating: Food_101/french_fries/992636.jpg  
  inflating: __MACOSX/Food_101/french_fries/._992636.jpg  
  inflating: Food_101/french_fries/2169665.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2169665.jpg  
  inflating: Food_101/french_fries/2979208.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2979208.jpg  
  inflating: Food_101/french_fries/3565195.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3565195.jpg  
  inflating: Food_101/french_fries/3358729.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3358729.jpg  
  inflating: Food_101/french_fries/1505018.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1505018.jpg  
  inflating: Food_101/french_fries/3871541.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3871541.jpg  
  inflating: Food_101/french_fries/720270.jpg  
  inflating: __MACOSX/Food_101/french_fries/._720270.jpg  
  inflating: Food_101/french_fries/2182834.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2182834.jpg  
  inflating: Food_101/french_fries/792429.jpg  
  inflating: __MACOSX/Food_101/french_fries/._792429.jpg  
  inflating: Food_101/french_fries/2314805.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2314805.jpg  
  inflating: Food_101/french_fries/2539272.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2539272.jpg  
  inflating: Food_101/french_fries/3639861.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3639861.jpg  
  inflating: Food_101/french_fries/303460.jpg  
  inflating: __MACOSX/Food_101/french_fries/._303460.jpg  
  inflating: Food_101/french_fries/584998.jpg  
  inflating: __MACOSX/Food_101/french_fries/._584998.jpg  
  inflating: Food_101/french_fries/3835129.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3835129.jpg  
  inflating: Food_101/french_fries/2971456.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2971456.jpg  
  inflating: Food_101/french_fries/721344.jpg  
  inflating: __MACOSX/Food_101/french_fries/._721344.jpg  
  inflating: Food_101/french_fries/2195192.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2195192.jpg  
  inflating: Food_101/french_fries/1692647.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1692647.jpg  
  inflating: Food_101/french_fries/914709.jpg  
  inflating: __MACOSX/Food_101/french_fries/._914709.jpg  
  inflating: Food_101/french_fries/2004116.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2004116.jpg  
  inflating: Food_101/french_fries/2603436.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2603436.jpg  
  inflating: Food_101/french_fries/3156237.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3156237.jpg  
  inflating: Food_101/french_fries/2369424.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2369424.jpg  
  inflating: Food_101/french_fries/887149.jpg  
  inflating: __MACOSX/Food_101/french_fries/._887149.jpg  
  inflating: Food_101/french_fries/3842428.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3842428.jpg  
  inflating: Food_101/french_fries/3352770.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3352770.jpg  
  inflating: Food_101/french_fries/2248373.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2248373.jpg  
  inflating: Food_101/french_fries/223944.jpg  
  inflating: __MACOSX/Food_101/french_fries/._223944.jpg  
  inflating: Food_101/french_fries/3061458.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3061458.jpg  
  inflating: Food_101/french_fries/2149566.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2149566.jpg  
  inflating: Food_101/french_fries/2649729.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2649729.jpg  
  inflating: Food_101/french_fries/659984.jpg  
  inflating: __MACOSX/Food_101/french_fries/._659984.jpg  
  inflating: Food_101/french_fries/584234.jpg  
  inflating: __MACOSX/Food_101/french_fries/._584234.jpg  
  inflating: Food_101/french_fries/1923452.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1923452.jpg  
  inflating: Food_101/french_fries/3870897.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3870897.jpg  
  inflating: Food_101/french_fries/2483067.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2483067.jpg  
  inflating: Food_101/french_fries/3325881.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3325881.jpg  
  inflating: Food_101/french_fries/1648775.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1648775.jpg  
  inflating: Food_101/french_fries/3919772.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3919772.jpg  
  inflating: Food_101/french_fries/653305.jpg  
  inflating: __MACOSX/Food_101/french_fries/._653305.jpg  
  inflating: Food_101/french_fries/3647571.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3647571.jpg  
  inflating: Food_101/french_fries/153823.jpg  
  inflating: __MACOSX/Food_101/french_fries/._153823.jpg  
  inflating: Food_101/french_fries/2991808.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2991808.jpg  
  inflating: Food_101/french_fries/3285362.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3285362.jpg  
  inflating: Food_101/french_fries/2418455.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2418455.jpg  
  inflating: Food_101/french_fries/48052.jpg  
  inflating: __MACOSX/Food_101/french_fries/._48052.jpg  
  inflating: Food_101/french_fries/3311926.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3311926.jpg  
  inflating: Food_101/french_fries/3050068.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3050068.jpg  
  inflating: Food_101/french_fries/374001.jpg  
  inflating: __MACOSX/Food_101/french_fries/._374001.jpg  
  inflating: Food_101/french_fries/605382.jpg  
  inflating: __MACOSX/Food_101/french_fries/._605382.jpg  
  inflating: Food_101/french_fries/3623578.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3623578.jpg  
  inflating: Food_101/french_fries/2607081.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2607081.jpg  
  inflating: Food_101/french_fries/2226284.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2226284.jpg  
  inflating: Food_101/french_fries/2632761.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2632761.jpg  
  inflating: Food_101/french_fries/1987093.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1987093.jpg  
  inflating: Food_101/french_fries/2956615.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2956615.jpg  
  inflating: Food_101/french_fries/1316819.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1316819.jpg  
  inflating: Food_101/french_fries/3116766.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3116766.jpg  
  inflating: Food_101/french_fries/541592.jpg  
  inflating: __MACOSX/Food_101/french_fries/._541592.jpg  
  inflating: Food_101/french_fries/2719269.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2719269.jpg  
  inflating: Food_101/french_fries/3103431.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3103431.jpg  
  inflating: Food_101/french_fries/1138037.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1138037.jpg  
  inflating: Food_101/french_fries/2984592.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2984592.jpg  
  inflating: Food_101/french_fries/2348992.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2348992.jpg  
  inflating: Food_101/french_fries/3247750.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3247750.jpg  
  inflating: Food_101/french_fries/2429892.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2429892.jpg  
  inflating: Food_101/french_fries/3730920.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3730920.jpg  
  inflating: Food_101/french_fries/3139.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3139.jpg  
  inflating: Food_101/french_fries/2823936.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2823936.jpg  
  inflating: Food_101/french_fries/1437118.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1437118.jpg  
  inflating: Food_101/french_fries/2246161.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2246161.jpg  
  inflating: Food_101/french_fries/184954.jpg  
  inflating: __MACOSX/Food_101/french_fries/._184954.jpg  
  inflating: Food_101/french_fries/2357939.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2357939.jpg  
  inflating: Food_101/french_fries/319830.jpg  
  inflating: __MACOSX/Food_101/french_fries/._319830.jpg  
  inflating: Food_101/french_fries/2886781.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2886781.jpg  
  inflating: Food_101/french_fries/187087.jpg  
  inflating: __MACOSX/Food_101/french_fries/._187087.jpg  
  inflating: Food_101/french_fries/3417062.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3417062.jpg  
  inflating: Food_101/french_fries/89974.jpg  
  inflating: __MACOSX/Food_101/french_fries/._89974.jpg  
  inflating: Food_101/french_fries/2752863.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2752863.jpg  
  inflating: Food_101/french_fries/123902.jpg  
  inflating: __MACOSX/Food_101/french_fries/._123902.jpg  
  inflating: Food_101/french_fries/531883.jpg  
  inflating: __MACOSX/Food_101/french_fries/._531883.jpg  
  inflating: Food_101/french_fries/1694219.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1694219.jpg  
  inflating: Food_101/french_fries/2189231.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2189231.jpg  
  inflating: Food_101/french_fries/2956993.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2956993.jpg  
  inflating: Food_101/french_fries/2836915.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2836915.jpg  
  inflating: Food_101/french_fries/2077845.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2077845.jpg  
  inflating: Food_101/french_fries/2705078.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2705078.jpg  
  inflating: Food_101/french_fries/3308469.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3308469.jpg  
  inflating: Food_101/french_fries/485471.jpg  
  inflating: __MACOSX/Food_101/french_fries/._485471.jpg  
  inflating: Food_101/french_fries/3719546.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3719546.jpg  
  inflating: Food_101/french_fries/457709.jpg  
  inflating: __MACOSX/Food_101/french_fries/._457709.jpg  
  inflating: Food_101/french_fries/2730558.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2730558.jpg  
  inflating: Food_101/french_fries/240760.jpg  
  inflating: __MACOSX/Food_101/french_fries/._240760.jpg  
  inflating: Food_101/french_fries/3714937.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3714937.jpg  
  inflating: Food_101/french_fries/2091683.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2091683.jpg  
  inflating: Food_101/french_fries/3857595.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3857595.jpg  
  inflating: Food_101/french_fries/3070998.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3070998.jpg  
  inflating: Food_101/french_fries/3509699.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3509699.jpg  
  inflating: Food_101/french_fries/2622969.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2622969.jpg  
  inflating: Food_101/french_fries/2998185.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2998185.jpg  
  inflating: Food_101/french_fries/999957.jpg  
  inflating: __MACOSX/Food_101/french_fries/._999957.jpg  
  inflating: Food_101/french_fries/2846809.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2846809.jpg  
  inflating: Food_101/french_fries/2661893.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2661893.jpg  
  inflating: Food_101/french_fries/143158.jpg  
  inflating: __MACOSX/Food_101/french_fries/._143158.jpg  
  inflating: Food_101/french_fries/2335210.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2335210.jpg  
  inflating: Food_101/french_fries/2733482.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2733482.jpg  
  inflating: Food_101/french_fries/2637800.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2637800.jpg  
  inflating: Food_101/french_fries/2472499.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2472499.jpg  
  inflating: Food_101/french_fries/2452990.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2452990.jpg  
  inflating: Food_101/french_fries/2497428.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2497428.jpg  
  inflating: Food_101/french_fries/3137998.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3137998.jpg  
  inflating: Food_101/french_fries/3405511.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3405511.jpg  
  inflating: Food_101/french_fries/1258546.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1258546.jpg  
  inflating: Food_101/french_fries/1234305.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1234305.jpg  
  inflating: Food_101/french_fries/2641001.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2641001.jpg  
  inflating: Food_101/french_fries/366349.jpg  
  inflating: __MACOSX/Food_101/french_fries/._366349.jpg  
  inflating: Food_101/french_fries/1875986.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1875986.jpg  
  inflating: Food_101/french_fries/2389101.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2389101.jpg  
  inflating: Food_101/french_fries/672487.jpg  
  inflating: __MACOSX/Food_101/french_fries/._672487.jpg  
  inflating: Food_101/french_fries/3626833.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3626833.jpg  
  inflating: Food_101/french_fries/1495592.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1495592.jpg  
  inflating: Food_101/french_fries/3893313.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3893313.jpg  
  inflating: Food_101/french_fries/64960.jpg  
  inflating: __MACOSX/Food_101/french_fries/._64960.jpg  
  inflating: Food_101/french_fries/2708944.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2708944.jpg  
  inflating: Food_101/french_fries/1659097.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1659097.jpg  
  inflating: Food_101/french_fries/2127530.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2127530.jpg  
  inflating: Food_101/french_fries/2965155.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2965155.jpg  
  inflating: Food_101/french_fries/2262956.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2262956.jpg  
  inflating: Food_101/french_fries/3221561.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3221561.jpg  
  inflating: Food_101/french_fries/1215903.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1215903.jpg  
  inflating: Food_101/french_fries/1767804.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1767804.jpg  
  inflating: Food_101/french_fries/1745333.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1745333.jpg  
  inflating: Food_101/french_fries/2853342.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2853342.jpg  
  inflating: Food_101/french_fries/455862.jpg  
  inflating: __MACOSX/Food_101/french_fries/._455862.jpg  
  inflating: Food_101/french_fries/3656250.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3656250.jpg  
  inflating: Food_101/french_fries/1552191.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1552191.jpg  
  inflating: Food_101/french_fries/3535015.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3535015.jpg  
  inflating: Food_101/french_fries/1443088.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1443088.jpg  
  inflating: Food_101/french_fries/3681905.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3681905.jpg  
  inflating: Food_101/french_fries/123929.jpg  
  inflating: __MACOSX/Food_101/french_fries/._123929.jpg  
  inflating: Food_101/french_fries/566728.jpg  
  inflating: __MACOSX/Food_101/french_fries/._566728.jpg  
  inflating: Food_101/french_fries/1700344.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1700344.jpg  
  inflating: Food_101/french_fries/3057602.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3057602.jpg  
  inflating: Food_101/french_fries/3145574.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3145574.jpg  
  inflating: Food_101/french_fries/1177340.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1177340.jpg  
  inflating: Food_101/french_fries/768719.jpg  
  inflating: __MACOSX/Food_101/french_fries/._768719.jpg  
  inflating: Food_101/french_fries/1337938.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1337938.jpg  
  inflating: Food_101/french_fries/71701.jpg  
  inflating: __MACOSX/Food_101/french_fries/._71701.jpg  
  inflating: Food_101/french_fries/3159377.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3159377.jpg  
  inflating: Food_101/french_fries/1877099.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1877099.jpg  
  inflating: Food_101/french_fries/3295921.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3295921.jpg  
  inflating: Food_101/french_fries/1969264.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1969264.jpg  
  inflating: Food_101/french_fries/1443762.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1443762.jpg  
  inflating: Food_101/french_fries/172042.jpg  
  inflating: __MACOSX/Food_101/french_fries/._172042.jpg  
  inflating: Food_101/french_fries/1923345.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1923345.jpg  
  inflating: Food_101/french_fries/895886.jpg  
  inflating: __MACOSX/Food_101/french_fries/._895886.jpg  
  inflating: Food_101/french_fries/847042.jpg  
  inflating: __MACOSX/Food_101/french_fries/._847042.jpg  
  inflating: Food_101/french_fries/147628.jpg  
  inflating: __MACOSX/Food_101/french_fries/._147628.jpg  
  inflating: Food_101/french_fries/3746805.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3746805.jpg  
  inflating: Food_101/french_fries/3919930.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3919930.jpg  
  inflating: Food_101/french_fries/1595244.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1595244.jpg  
  inflating: Food_101/french_fries/2239316.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2239316.jpg  
  inflating: Food_101/french_fries/1781706.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1781706.jpg  
  inflating: Food_101/french_fries/3620996.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3620996.jpg  
  inflating: Food_101/french_fries/2214535.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2214535.jpg  
  inflating: Food_101/french_fries/2385210.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2385210.jpg  
  inflating: Food_101/french_fries/201362.jpg  
  inflating: __MACOSX/Food_101/french_fries/._201362.jpg  
  inflating: Food_101/french_fries/2031719.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2031719.jpg  
  inflating: Food_101/french_fries/3772034.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3772034.jpg  
  inflating: Food_101/french_fries/2121537.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2121537.jpg  
  inflating: Food_101/french_fries/973682.jpg  
  inflating: __MACOSX/Food_101/french_fries/._973682.jpg  
  inflating: Food_101/french_fries/2893262.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2893262.jpg  
  inflating: Food_101/french_fries/2650142.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2650142.jpg  
  inflating: Food_101/french_fries/174977.jpg  
  inflating: __MACOSX/Food_101/french_fries/._174977.jpg  
  inflating: Food_101/french_fries/1510273.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1510273.jpg  
  inflating: Food_101/french_fries/2301475.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2301475.jpg  
  inflating: Food_101/french_fries/3626100.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3626100.jpg  
  inflating: Food_101/french_fries/1934980.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1934980.jpg  
  inflating: Food_101/french_fries/3293202.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3293202.jpg  
  inflating: Food_101/french_fries/1541766.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1541766.jpg  
  inflating: Food_101/french_fries/2487311.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2487311.jpg  
  inflating: Food_101/french_fries/153648.jpg  
  inflating: __MACOSX/Food_101/french_fries/._153648.jpg  
  inflating: Food_101/french_fries/3303188.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3303188.jpg  
  inflating: Food_101/french_fries/2895439.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2895439.jpg  
  inflating: Food_101/french_fries/1909354.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1909354.jpg  
  inflating: Food_101/french_fries/1538500.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1538500.jpg  
  inflating: Food_101/french_fries/660608.jpg  
  inflating: __MACOSX/Food_101/french_fries/._660608.jpg  
  inflating: Food_101/french_fries/2512097.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2512097.jpg  
  inflating: Food_101/french_fries/3701352.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3701352.jpg  
  inflating: Food_101/french_fries/3698017.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3698017.jpg  
  inflating: Food_101/french_fries/2229500.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2229500.jpg  
  inflating: Food_101/french_fries/2819952.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2819952.jpg  
  inflating: Food_101/french_fries/2528860.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2528860.jpg  
  inflating: Food_101/french_fries/20215.jpg  
  inflating: __MACOSX/Food_101/french_fries/._20215.jpg  
  inflating: Food_101/french_fries/2788461.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2788461.jpg  
  inflating: Food_101/french_fries/3499831.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3499831.jpg  
  inflating: Food_101/french_fries/375233.jpg  
  inflating: __MACOSX/Food_101/french_fries/._375233.jpg  
  inflating: Food_101/french_fries/3495789.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3495789.jpg  
  inflating: Food_101/french_fries/3274074.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3274074.jpg  
  inflating: Food_101/french_fries/1787214.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1787214.jpg  
  inflating: Food_101/french_fries/467491.jpg  
  inflating: __MACOSX/Food_101/french_fries/._467491.jpg  
  inflating: Food_101/french_fries/3416327.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3416327.jpg  
  inflating: Food_101/french_fries/387064.jpg  
  inflating: __MACOSX/Food_101/french_fries/._387064.jpg  
  inflating: Food_101/french_fries/3190389.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3190389.jpg  
  inflating: Food_101/french_fries/10897.jpg  
  inflating: __MACOSX/Food_101/french_fries/._10897.jpg  
  inflating: Food_101/french_fries/760811.jpg  
  inflating: __MACOSX/Food_101/french_fries/._760811.jpg  
  inflating: Food_101/french_fries/3030315.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3030315.jpg  
  inflating: Food_101/french_fries/591139.jpg  
  inflating: __MACOSX/Food_101/french_fries/._591139.jpg  
  inflating: Food_101/french_fries/1637064.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1637064.jpg  
  inflating: Food_101/french_fries/1361604.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1361604.jpg  
  inflating: Food_101/french_fries/3700106.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3700106.jpg  
  inflating: Food_101/french_fries/1724805.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1724805.jpg  
  inflating: Food_101/french_fries/3311203.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3311203.jpg  
  inflating: Food_101/french_fries/2275484.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2275484.jpg  
  inflating: Food_101/french_fries/2510721.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2510721.jpg  
  inflating: Food_101/french_fries/2606474.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2606474.jpg  
  inflating: Food_101/french_fries/2008616.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2008616.jpg  
  inflating: Food_101/french_fries/3337777.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3337777.jpg  
  inflating: Food_101/french_fries/3276703.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3276703.jpg  
  inflating: Food_101/french_fries/1376608.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1376608.jpg  
  inflating: Food_101/french_fries/771459.jpg  
  inflating: __MACOSX/Food_101/french_fries/._771459.jpg  
  inflating: Food_101/french_fries/2062357.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2062357.jpg  
  inflating: Food_101/french_fries/3447747.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3447747.jpg  
  inflating: Food_101/french_fries/3669402.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3669402.jpg  
  inflating: Food_101/french_fries/191085.jpg  
  inflating: __MACOSX/Food_101/french_fries/._191085.jpg  
  inflating: Food_101/french_fries/461181.jpg  
  inflating: __MACOSX/Food_101/french_fries/._461181.jpg  
  inflating: Food_101/french_fries/2485920.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2485920.jpg  
  inflating: Food_101/french_fries/2497101.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2497101.jpg  
  inflating: Food_101/french_fries/3614614.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3614614.jpg  
  inflating: Food_101/french_fries/3223529.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3223529.jpg  
  inflating: Food_101/french_fries/80315.jpg  
  inflating: __MACOSX/Food_101/french_fries/._80315.jpg  
  inflating: Food_101/french_fries/3317868.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3317868.jpg  
  inflating: Food_101/french_fries/1241462.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1241462.jpg  
  inflating: Food_101/french_fries/1667108.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1667108.jpg  
  inflating: Food_101/french_fries/2624207.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2624207.jpg  
  inflating: Food_101/french_fries/1190903.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1190903.jpg  
  inflating: Food_101/french_fries/1793704.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1793704.jpg  
  inflating: Food_101/french_fries/2699989.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2699989.jpg  
  inflating: Food_101/french_fries/2634202.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2634202.jpg  
  inflating: Food_101/french_fries/244006.jpg  
  inflating: __MACOSX/Food_101/french_fries/._244006.jpg  
  inflating: Food_101/french_fries/2355379.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2355379.jpg  
  inflating: Food_101/french_fries/2093557.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2093557.jpg  
  inflating: Food_101/french_fries/2224231.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2224231.jpg  
  inflating: Food_101/french_fries/999328.jpg  
  inflating: __MACOSX/Food_101/french_fries/._999328.jpg  
  inflating: Food_101/french_fries/907716.jpg  
  inflating: __MACOSX/Food_101/french_fries/._907716.jpg  
  inflating: Food_101/french_fries/3030853.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3030853.jpg  
  inflating: Food_101/french_fries/1099260.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1099260.jpg  
  inflating: Food_101/french_fries/2476066.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2476066.jpg  
  inflating: Food_101/french_fries/3152740.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3152740.jpg  
  inflating: Food_101/french_fries/2413615.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2413615.jpg  
  inflating: Food_101/french_fries/331674.jpg  
  inflating: __MACOSX/Food_101/french_fries/._331674.jpg  
  inflating: Food_101/french_fries/966854.jpg  
  inflating: __MACOSX/Food_101/french_fries/._966854.jpg  
  inflating: Food_101/french_fries/1345833.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1345833.jpg  
  inflating: Food_101/french_fries/535675.jpg  
  inflating: __MACOSX/Food_101/french_fries/._535675.jpg  
  inflating: Food_101/french_fries/1439792.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1439792.jpg  
  inflating: Food_101/french_fries/2213664.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2213664.jpg  
  inflating: Food_101/french_fries/3447353.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3447353.jpg  
  inflating: Food_101/french_fries/626896.jpg  
  inflating: __MACOSX/Food_101/french_fries/._626896.jpg  
  inflating: Food_101/french_fries/2498356.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2498356.jpg  
  inflating: Food_101/french_fries/2106366.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2106366.jpg  
  inflating: Food_101/french_fries/3500811.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3500811.jpg  
  inflating: Food_101/french_fries/3524964.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3524964.jpg  
  inflating: Food_101/french_fries/3025133.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3025133.jpg  
  inflating: Food_101/french_fries/3081685.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3081685.jpg  
  inflating: Food_101/french_fries/2808737.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2808737.jpg  
  inflating: Food_101/french_fries/10500.jpg  
  inflating: __MACOSX/Food_101/french_fries/._10500.jpg  
  inflating: Food_101/french_fries/911982.jpg  
  inflating: __MACOSX/Food_101/french_fries/._911982.jpg  
  inflating: Food_101/french_fries/2737860.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2737860.jpg  
  inflating: Food_101/french_fries/2200585.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2200585.jpg  
  inflating: Food_101/french_fries/2303073.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2303073.jpg  
  inflating: Food_101/french_fries/1343675.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1343675.jpg  
  inflating: Food_101/french_fries/2580653.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2580653.jpg  
  inflating: Food_101/french_fries/3626463.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3626463.jpg  
  inflating: Food_101/french_fries/3516519.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3516519.jpg  
  inflating: Food_101/french_fries/3210333.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3210333.jpg  
  inflating: Food_101/french_fries/353437.jpg  
  inflating: __MACOSX/Food_101/french_fries/._353437.jpg  
  inflating: Food_101/french_fries/1099329.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1099329.jpg  
  inflating: Food_101/french_fries/2705623.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2705623.jpg  
  inflating: Food_101/french_fries/3600843.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3600843.jpg  
  inflating: Food_101/french_fries/411113.jpg  
  inflating: __MACOSX/Food_101/french_fries/._411113.jpg  
  inflating: Food_101/french_fries/3450772.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3450772.jpg  
  inflating: Food_101/french_fries/1387352.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1387352.jpg  
  inflating: Food_101/french_fries/547396.jpg  
  inflating: __MACOSX/Food_101/french_fries/._547396.jpg  
  inflating: Food_101/french_fries/610504.jpg  
  inflating: __MACOSX/Food_101/french_fries/._610504.jpg  
  inflating: Food_101/french_fries/2700217.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2700217.jpg  
  inflating: Food_101/french_fries/1787600.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1787600.jpg  
  inflating: Food_101/french_fries/3131190.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3131190.jpg  
  inflating: Food_101/french_fries/2350833.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2350833.jpg  
  inflating: Food_101/french_fries/2530422.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2530422.jpg  
  inflating: Food_101/french_fries/1131104.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1131104.jpg  
  inflating: Food_101/french_fries/2941901.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2941901.jpg  
  inflating: Food_101/french_fries/2011974.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2011974.jpg  
  inflating: Food_101/french_fries/783581.jpg  
  inflating: __MACOSX/Food_101/french_fries/._783581.jpg  
  inflating: Food_101/french_fries/1785605.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1785605.jpg  
  inflating: Food_101/french_fries/3854016.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3854016.jpg  
  inflating: Food_101/french_fries/1998271.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1998271.jpg  
  inflating: Food_101/french_fries/2001959.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2001959.jpg  
  inflating: Food_101/french_fries/1347228.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1347228.jpg  
  inflating: Food_101/french_fries/1519669.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1519669.jpg  
  inflating: Food_101/french_fries/565296.jpg  
  inflating: __MACOSX/Food_101/french_fries/._565296.jpg  
  inflating: Food_101/french_fries/2099094.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2099094.jpg  
  inflating: Food_101/french_fries/2313315.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2313315.jpg  
  inflating: Food_101/french_fries/3621286.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3621286.jpg  
  inflating: Food_101/french_fries/1369116.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1369116.jpg  
  inflating: Food_101/french_fries/100148.jpg  
  inflating: __MACOSX/Food_101/french_fries/._100148.jpg  
  inflating: Food_101/french_fries/1165966.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1165966.jpg  
  inflating: Food_101/french_fries/465519.jpg  
  inflating: __MACOSX/Food_101/french_fries/._465519.jpg  
  inflating: Food_101/french_fries/2721807.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2721807.jpg  
  inflating: Food_101/french_fries/756143.jpg  
  inflating: __MACOSX/Food_101/french_fries/._756143.jpg  
  inflating: Food_101/french_fries/670184.jpg  
  inflating: __MACOSX/Food_101/french_fries/._670184.jpg  
  inflating: Food_101/french_fries/2759016.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2759016.jpg  
  inflating: Food_101/french_fries/2126499.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2126499.jpg  
  inflating: Food_101/french_fries/3566836.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3566836.jpg  
  inflating: Food_101/french_fries/697086.jpg  
  inflating: __MACOSX/Food_101/french_fries/._697086.jpg  
  inflating: Food_101/french_fries/3627636.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3627636.jpg  
  inflating: Food_101/french_fries/3447608.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3447608.jpg  
  inflating: Food_101/french_fries/2503834.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2503834.jpg  
  inflating: Food_101/french_fries/1089500.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1089500.jpg  
  inflating: Food_101/french_fries/303809.jpg  
  inflating: __MACOSX/Food_101/french_fries/._303809.jpg  
  inflating: Food_101/french_fries/1692353.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1692353.jpg  
  inflating: Food_101/french_fries/411918.jpg  
  inflating: __MACOSX/Food_101/french_fries/._411918.jpg  
  inflating: Food_101/french_fries/1810007.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1810007.jpg  
  inflating: Food_101/french_fries/622359.jpg  
  inflating: __MACOSX/Food_101/french_fries/._622359.jpg  
  inflating: Food_101/french_fries/2371960.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2371960.jpg  
  inflating: Food_101/french_fries/2093949.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2093949.jpg  
  inflating: Food_101/french_fries/1049122.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1049122.jpg  
  inflating: Food_101/french_fries/2788061.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2788061.jpg  
  inflating: Food_101/french_fries/2479034.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2479034.jpg  
  inflating: Food_101/french_fries/1071481.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1071481.jpg  
  inflating: Food_101/french_fries/145012.jpg  
  inflating: __MACOSX/Food_101/french_fries/._145012.jpg  
  inflating: Food_101/french_fries/439892.jpg  
  inflating: __MACOSX/Food_101/french_fries/._439892.jpg  
  inflating: Food_101/french_fries/1370900.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1370900.jpg  
  inflating: Food_101/french_fries/3225836.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3225836.jpg  
  inflating: Food_101/french_fries/2048963.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2048963.jpg  
  inflating: Food_101/french_fries/1970888.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1970888.jpg  
  inflating: Food_101/french_fries/1150103.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1150103.jpg  
  inflating: Food_101/french_fries/2631590.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2631590.jpg  
  inflating: Food_101/french_fries/3714377.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3714377.jpg  
  inflating: Food_101/french_fries/1647142.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1647142.jpg  
  inflating: Food_101/french_fries/3184259.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3184259.jpg  
  inflating: Food_101/french_fries/87125.jpg  
  inflating: __MACOSX/Food_101/french_fries/._87125.jpg  
  inflating: Food_101/french_fries/2986125.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2986125.jpg  
  inflating: Food_101/french_fries/2573727.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2573727.jpg  
  inflating: Food_101/french_fries/2792575.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2792575.jpg  
  inflating: Food_101/french_fries/2307202.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2307202.jpg  
  inflating: Food_101/french_fries/2773760.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2773760.jpg  
  inflating: Food_101/french_fries/1772112.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1772112.jpg  
  inflating: Food_101/french_fries/2212633.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2212633.jpg  
  inflating: Food_101/french_fries/3185191.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3185191.jpg  
  inflating: Food_101/french_fries/557390.jpg  
  inflating: __MACOSX/Food_101/french_fries/._557390.jpg  
  inflating: Food_101/french_fries/3141886.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3141886.jpg  
  inflating: Food_101/french_fries/1085071.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1085071.jpg  
  inflating: Food_101/french_fries/3711232.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3711232.jpg  
  inflating: Food_101/french_fries/2892637.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2892637.jpg  
  inflating: Food_101/french_fries/2916251.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2916251.jpg  
  inflating: Food_101/french_fries/2941321.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2941321.jpg  
  inflating: Food_101/french_fries/223676.jpg  
  inflating: __MACOSX/Food_101/french_fries/._223676.jpg  
  inflating: Food_101/french_fries/80887.jpg  
  inflating: __MACOSX/Food_101/french_fries/._80887.jpg  
  inflating: Food_101/french_fries/2361623.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2361623.jpg  
  inflating: Food_101/french_fries/2522964.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2522964.jpg  
  inflating: Food_101/french_fries/2601877.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2601877.jpg  
  inflating: Food_101/french_fries/714775.jpg  
  inflating: __MACOSX/Food_101/french_fries/._714775.jpg  
  inflating: Food_101/french_fries/1813453.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1813453.jpg  
  inflating: Food_101/french_fries/3674858.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3674858.jpg  
  inflating: Food_101/french_fries/421038.jpg  
  inflating: __MACOSX/Food_101/french_fries/._421038.jpg  
  inflating: Food_101/french_fries/1639700.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1639700.jpg  
  inflating: Food_101/french_fries/3579283.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3579283.jpg  
  inflating: Food_101/french_fries/2624567.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2624567.jpg  
  inflating: Food_101/french_fries/2957806.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2957806.jpg  
  inflating: Food_101/french_fries/1192860.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1192860.jpg  
  inflating: Food_101/french_fries/2641499.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2641499.jpg  
  inflating: Food_101/french_fries/1126453.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1126453.jpg  
  inflating: Food_101/french_fries/852271.jpg  
  inflating: __MACOSX/Food_101/french_fries/._852271.jpg  
  inflating: Food_101/french_fries/575247.jpg  
  inflating: __MACOSX/Food_101/french_fries/._575247.jpg  
  inflating: Food_101/french_fries/2856271.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2856271.jpg  
  inflating: Food_101/french_fries/361733.jpg  
  inflating: __MACOSX/Food_101/french_fries/._361733.jpg  
  inflating: Food_101/french_fries/2082676.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2082676.jpg  
  inflating: Food_101/french_fries/823649.jpg  
  inflating: __MACOSX/Food_101/french_fries/._823649.jpg  
  inflating: Food_101/french_fries/502232.jpg  
  inflating: __MACOSX/Food_101/french_fries/._502232.jpg  
  inflating: Food_101/french_fries/2910032.jpg  
  inflating: __MACOSX/Food_101/french_fries/._2910032.jpg  
  inflating: Food_101/french_fries/1438129.jpg  
  inflating: __MACOSX/Food_101/french_fries/._1438129.jpg  
  inflating: Food_101/french_fries/265743.jpg  
  inflating: __MACOSX/Food_101/french_fries/._265743.jpg  
  inflating: Food_101/french_fries/3919465.jpg  
  inflating: __MACOSX/Food_101/french_fries/._3919465.jpg  
  inflating: Food_101/onion_rings/3378644.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3378644.jpg  
  inflating: Food_101/onion_rings/2854133.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2854133.jpg  
  inflating: Food_101/onion_rings/3799671.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3799671.jpg  
  inflating: Food_101/onion_rings/682478.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._682478.jpg  
  inflating: Food_101/onion_rings/408921.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._408921.jpg  
  inflating: Food_101/onion_rings/3731702.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3731702.jpg  
  inflating: Food_101/onion_rings/807916.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._807916.jpg  
  inflating: Food_101/onion_rings/1821017.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1821017.jpg  
  inflating: Food_101/onion_rings/1490057.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1490057.jpg  
  inflating: Food_101/onion_rings/3817653.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3817653.jpg  
  inflating: Food_101/onion_rings/15729.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._15729.jpg  
  inflating: Food_101/onion_rings/3445577.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3445577.jpg  
  inflating: Food_101/onion_rings/3589784.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3589784.jpg  
  inflating: Food_101/onion_rings/3889319.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3889319.jpg  
  inflating: Food_101/onion_rings/2996892.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2996892.jpg  
  inflating: Food_101/onion_rings/3702727.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3702727.jpg  
  inflating: Food_101/onion_rings/3519426.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3519426.jpg  
  inflating: Food_101/onion_rings/2002682.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2002682.jpg  
  inflating: Food_101/onion_rings/2620678.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2620678.jpg  
  inflating: Food_101/onion_rings/1538044.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1538044.jpg  
  inflating: Food_101/onion_rings/3090546.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3090546.jpg  
  inflating: Food_101/onion_rings/2365312.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2365312.jpg  
  inflating: Food_101/onion_rings/1731782.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1731782.jpg  
  inflating: Food_101/onion_rings/1055739.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1055739.jpg  
  inflating: Food_101/onion_rings/3377359.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3377359.jpg  
  inflating: Food_101/onion_rings/296017.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._296017.jpg  
  inflating: Food_101/onion_rings/3489223.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3489223.jpg  
  inflating: Food_101/onion_rings/2340179.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2340179.jpg  
  inflating: Food_101/onion_rings/2978547.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2978547.jpg  
  inflating: Food_101/onion_rings/3401042.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3401042.jpg  
  inflating: Food_101/onion_rings/1393102.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1393102.jpg  
  inflating: Food_101/onion_rings/3678511.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3678511.jpg  
  inflating: Food_101/onion_rings/2405657.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2405657.jpg  
  inflating: Food_101/onion_rings/772167.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._772167.jpg  
  inflating: Food_101/onion_rings/488932.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._488932.jpg  
  inflating: Food_101/onion_rings/51208.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._51208.jpg  
  inflating: Food_101/onion_rings/890921.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._890921.jpg  
  inflating: Food_101/onion_rings/726720.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._726720.jpg  
  inflating: Food_101/onion_rings/1830523.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1830523.jpg  
  inflating: Food_101/onion_rings/3773120.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3773120.jpg  
  inflating: Food_101/onion_rings/3347072.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3347072.jpg  
  inflating: Food_101/onion_rings/3262231.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3262231.jpg  
  inflating: Food_101/onion_rings/2130180.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2130180.jpg  
  inflating: Food_101/onion_rings/192753.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._192753.jpg  
  inflating: Food_101/onion_rings/2003210.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2003210.jpg  
  inflating: Food_101/onion_rings/1442306.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1442306.jpg  
  inflating: Food_101/onion_rings/1557079.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1557079.jpg  
  inflating: Food_101/onion_rings/3156919.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3156919.jpg  
  inflating: Food_101/onion_rings/3072663.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3072663.jpg  
  inflating: Food_101/onion_rings/2354535.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2354535.jpg  
  inflating: Food_101/onion_rings/1172783.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1172783.jpg  
  inflating: Food_101/onion_rings/915122.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._915122.jpg  
  inflating: Food_101/onion_rings/2689560.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2689560.jpg  
  inflating: Food_101/onion_rings/814572.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._814572.jpg  
  inflating: Food_101/onion_rings/416511.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._416511.jpg  
  inflating: Food_101/onion_rings/1154585.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1154585.jpg  
  inflating: Food_101/onion_rings/897492.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._897492.jpg  
  inflating: Food_101/onion_rings/836506.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._836506.jpg  
  inflating: Food_101/onion_rings/1367875.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1367875.jpg  
  inflating: Food_101/onion_rings/2032387.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2032387.jpg  
  inflating: Food_101/onion_rings/1404192.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1404192.jpg  
  inflating: Food_101/onion_rings/3578344.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3578344.jpg  
  inflating: Food_101/onion_rings/1152123.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1152123.jpg  
  inflating: Food_101/onion_rings/3571374.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3571374.jpg  
  inflating: Food_101/onion_rings/2828589.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2828589.jpg  
  inflating: Food_101/onion_rings/525124.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._525124.jpg  
  inflating: Food_101/onion_rings/3259845.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3259845.jpg  
  inflating: Food_101/onion_rings/3313958.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3313958.jpg  
  inflating: Food_101/onion_rings/2287586.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2287586.jpg  
  inflating: Food_101/onion_rings/2134079.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2134079.jpg  
  inflating: Food_101/onion_rings/228842.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._228842.jpg  
  inflating: Food_101/onion_rings/3355702.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3355702.jpg  
  inflating: Food_101/onion_rings/2574696.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2574696.jpg  
  inflating: Food_101/onion_rings/2875101.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2875101.jpg  
  inflating: Food_101/onion_rings/2505709.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2505709.jpg  
  inflating: Food_101/onion_rings/414304.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._414304.jpg  
  inflating: Food_101/onion_rings/1128896.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1128896.jpg  
  inflating: Food_101/onion_rings/3857923.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3857923.jpg  
  inflating: Food_101/onion_rings/469884.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._469884.jpg  
  inflating: Food_101/onion_rings/1191354.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1191354.jpg  
  inflating: Food_101/onion_rings/933681.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._933681.jpg  
  inflating: Food_101/onion_rings/2549073.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2549073.jpg  
  inflating: Food_101/onion_rings/2171690.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2171690.jpg  
  inflating: Food_101/onion_rings/1703531.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1703531.jpg  
  inflating: Food_101/onion_rings/987244.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._987244.jpg  
  inflating: Food_101/onion_rings/998402.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._998402.jpg  
  inflating: Food_101/onion_rings/2767281.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2767281.jpg  
  inflating: Food_101/onion_rings/3734296.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3734296.jpg  
  inflating: Food_101/onion_rings/1922125.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1922125.jpg  
  inflating: Food_101/onion_rings/951366.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._951366.jpg  
  inflating: Food_101/onion_rings/231254.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._231254.jpg  
  inflating: Food_101/onion_rings/2099106.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2099106.jpg  
  inflating: Food_101/onion_rings/2868795.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2868795.jpg  
  inflating: Food_101/onion_rings/3401040.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3401040.jpg  
  inflating: Food_101/onion_rings/1199480.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1199480.jpg  
  inflating: Food_101/onion_rings/1176121.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1176121.jpg  
  inflating: Food_101/onion_rings/505368.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._505368.jpg  
  inflating: Food_101/onion_rings/2442523.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2442523.jpg  
  inflating: Food_101/onion_rings/3163341.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3163341.jpg  
  inflating: Food_101/onion_rings/185748.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._185748.jpg  
  inflating: Food_101/onion_rings/3575703.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3575703.jpg  
  inflating: Food_101/onion_rings/2384844.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2384844.jpg  
  inflating: Food_101/onion_rings/2989230.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2989230.jpg  
  inflating: Food_101/onion_rings/1902747.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1902747.jpg  
  inflating: Food_101/onion_rings/1121509.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1121509.jpg  
  inflating: Food_101/onion_rings/2708848.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2708848.jpg  
  inflating: Food_101/onion_rings/3364870.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3364870.jpg  
  inflating: Food_101/onion_rings/2126078.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2126078.jpg  
  inflating: Food_101/onion_rings/3894389.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3894389.jpg  
  inflating: Food_101/onion_rings/2071875.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2071875.jpg  
  inflating: Food_101/onion_rings/2808504.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2808504.jpg  
  inflating: Food_101/onion_rings/3244593.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3244593.jpg  
  inflating: Food_101/onion_rings/1683330.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1683330.jpg  
  inflating: Food_101/onion_rings/1796073.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1796073.jpg  
  inflating: Food_101/onion_rings/1088002.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1088002.jpg  
  inflating: Food_101/onion_rings/3772598.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3772598.jpg  
  inflating: Food_101/onion_rings/849689.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._849689.jpg  
  inflating: Food_101/onion_rings/1460832.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1460832.jpg  
  inflating: Food_101/onion_rings/2632322.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2632322.jpg  
  inflating: Food_101/onion_rings/2483960.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2483960.jpg  
  inflating: Food_101/onion_rings/2636193.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2636193.jpg  
  inflating: Food_101/onion_rings/3042760.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3042760.jpg  
  inflating: Food_101/onion_rings/2831742.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2831742.jpg  
  inflating: Food_101/onion_rings/2553228.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2553228.jpg  
  inflating: Food_101/onion_rings/251402.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._251402.jpg  
  inflating: Food_101/onion_rings/1112289.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1112289.jpg  
  inflating: Food_101/onion_rings/3533144.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3533144.jpg  
  inflating: Food_101/onion_rings/1017468.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1017468.jpg  
  inflating: Food_101/onion_rings/2596809.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2596809.jpg  
  inflating: Food_101/onion_rings/1612987.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1612987.jpg  
  inflating: Food_101/onion_rings/2998261.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2998261.jpg  
  inflating: Food_101/onion_rings/483086.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._483086.jpg  
  inflating: Food_101/onion_rings/1112272.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1112272.jpg  
  inflating: Food_101/onion_rings/755440.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._755440.jpg  
  inflating: Food_101/onion_rings/2281694.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2281694.jpg  
  inflating: Food_101/onion_rings/2583582.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2583582.jpg  
  inflating: Food_101/onion_rings/1262705.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1262705.jpg  
  inflating: Food_101/onion_rings/3384406.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3384406.jpg  
  inflating: Food_101/onion_rings/3344178.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3344178.jpg  
  inflating: Food_101/onion_rings/2997803.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2997803.jpg  
  inflating: Food_101/onion_rings/3029853.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3029853.jpg  
  inflating: Food_101/onion_rings/3705890.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3705890.jpg  
  inflating: Food_101/onion_rings/260340.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._260340.jpg  
  inflating: Food_101/onion_rings/57508.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._57508.jpg  
  inflating: Food_101/onion_rings/3362381.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3362381.jpg  
  inflating: Food_101/onion_rings/61737.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._61737.jpg  
  inflating: Food_101/onion_rings/3312100.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3312100.jpg  
  inflating: Food_101/onion_rings/743949.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._743949.jpg  
  inflating: Food_101/onion_rings/2534923.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2534923.jpg  
  inflating: Food_101/onion_rings/242917.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._242917.jpg  
  inflating: Food_101/onion_rings/1642554.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1642554.jpg  
  inflating: Food_101/onion_rings/376330.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._376330.jpg  
  inflating: Food_101/onion_rings/608394.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._608394.jpg  
  inflating: Food_101/onion_rings/321297.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._321297.jpg  
  inflating: Food_101/onion_rings/798234.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._798234.jpg  
  inflating: Food_101/onion_rings/2342973.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2342973.jpg  
  inflating: Food_101/onion_rings/1089654.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1089654.jpg  
  inflating: Food_101/onion_rings/1105108.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1105108.jpg  
  inflating: Food_101/onion_rings/2856656.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2856656.jpg  
  inflating: Food_101/onion_rings/1213711.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1213711.jpg  
  inflating: Food_101/onion_rings/1089683.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1089683.jpg  
  inflating: Food_101/onion_rings/2123460.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2123460.jpg  
  inflating: Food_101/onion_rings/929554.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._929554.jpg  
  inflating: Food_101/onion_rings/2012870.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2012870.jpg  
  inflating: Food_101/onion_rings/816029.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._816029.jpg  
  inflating: Food_101/onion_rings/2587875.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2587875.jpg  
  inflating: Food_101/onion_rings/171800.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._171800.jpg  
  inflating: Food_101/onion_rings/1491762.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1491762.jpg  
  inflating: Food_101/onion_rings/3117189.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3117189.jpg  
  inflating: Food_101/onion_rings/774706.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._774706.jpg  
  inflating: Food_101/onion_rings/32597.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._32597.jpg  
  inflating: Food_101/onion_rings/1399818.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1399818.jpg  
  inflating: Food_101/onion_rings/2635299.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2635299.jpg  
  inflating: Food_101/onion_rings/1642541.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1642541.jpg  
  inflating: Food_101/onion_rings/2921811.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2921811.jpg  
  inflating: Food_101/onion_rings/1998330.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1998330.jpg  
  inflating: Food_101/onion_rings/2619997.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2619997.jpg  
  inflating: Food_101/onion_rings/3550627.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3550627.jpg  
  inflating: Food_101/onion_rings/3756588.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3756588.jpg  
  inflating: Food_101/onion_rings/2498410.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2498410.jpg  
  inflating: Food_101/onion_rings/567852.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._567852.jpg  
  inflating: Food_101/onion_rings/2634018.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2634018.jpg  
  inflating: Food_101/onion_rings/2684903.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2684903.jpg  
  inflating: Food_101/onion_rings/810921.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._810921.jpg  
  inflating: Food_101/onion_rings/865399.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._865399.jpg  
  inflating: Food_101/onion_rings/192609.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._192609.jpg  
  inflating: Food_101/onion_rings/2324995.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2324995.jpg  
  inflating: Food_101/onion_rings/1331610.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1331610.jpg  
  inflating: Food_101/onion_rings/2248683.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2248683.jpg  
  inflating: Food_101/onion_rings/2212599.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2212599.jpg  
  inflating: Food_101/onion_rings/2338827.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2338827.jpg  
  inflating: Food_101/onion_rings/1443552.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1443552.jpg  
  inflating: Food_101/onion_rings/1770646.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1770646.jpg  
  inflating: Food_101/onion_rings/2413147.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2413147.jpg  
  inflating: Food_101/onion_rings/2901690.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2901690.jpg  
  inflating: Food_101/onion_rings/333296.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._333296.jpg  
  inflating: Food_101/onion_rings/2550724.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2550724.jpg  
  inflating: Food_101/onion_rings/166213.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._166213.jpg  
  inflating: Food_101/onion_rings/2612222.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2612222.jpg  
  inflating: Food_101/onion_rings/1093989.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1093989.jpg  
  inflating: Food_101/onion_rings/1549094.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1549094.jpg  
  inflating: Food_101/onion_rings/3442960.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3442960.jpg  
  inflating: Food_101/onion_rings/1585488.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1585488.jpg  
  inflating: Food_101/onion_rings/1851536.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1851536.jpg  
  inflating: Food_101/onion_rings/801386.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._801386.jpg  
  inflating: Food_101/onion_rings/1289599.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1289599.jpg  
  inflating: Food_101/onion_rings/2423509.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2423509.jpg  
  inflating: Food_101/onion_rings/3041520.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3041520.jpg  
  inflating: Food_101/onion_rings/3544687.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3544687.jpg  
  inflating: Food_101/onion_rings/2805184.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2805184.jpg  
  inflating: Food_101/onion_rings/253986.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._253986.jpg  
  inflating: Food_101/onion_rings/3446735.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3446735.jpg  
  inflating: Food_101/onion_rings/2289744.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2289744.jpg  
  inflating: Food_101/onion_rings/45047.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._45047.jpg  
  inflating: Food_101/onion_rings/2121923.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2121923.jpg  
  inflating: Food_101/onion_rings/2373978.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2373978.jpg  
  inflating: Food_101/onion_rings/2094197.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2094197.jpg  
  inflating: Food_101/onion_rings/2447676.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2447676.jpg  
  inflating: Food_101/onion_rings/2362849.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2362849.jpg  
  inflating: Food_101/onion_rings/1741923.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1741923.jpg  
  inflating: Food_101/onion_rings/2369539.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2369539.jpg  
  inflating: Food_101/onion_rings/2367528.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2367528.jpg  
  inflating: Food_101/onion_rings/903368.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._903368.jpg  
  inflating: Food_101/onion_rings/2322074.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2322074.jpg  
  inflating: Food_101/onion_rings/1800157.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1800157.jpg  
  inflating: Food_101/onion_rings/71645.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._71645.jpg  
  inflating: Food_101/onion_rings/2915963.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2915963.jpg  
  inflating: Food_101/onion_rings/1620661.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1620661.jpg  
  inflating: Food_101/onion_rings/2668349.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2668349.jpg  
  inflating: Food_101/onion_rings/3538836.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3538836.jpg  
  inflating: Food_101/onion_rings/2088781.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2088781.jpg  
  inflating: Food_101/onion_rings/2537186.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2537186.jpg  
  inflating: Food_101/onion_rings/2030344.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2030344.jpg  
  inflating: Food_101/onion_rings/2203911.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2203911.jpg  
  inflating: Food_101/onion_rings/950719.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._950719.jpg  
  inflating: Food_101/onion_rings/424377.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._424377.jpg  
  inflating: Food_101/onion_rings/2707016.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2707016.jpg  
  inflating: Food_101/onion_rings/175132.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._175132.jpg  
  inflating: Food_101/onion_rings/3623048.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3623048.jpg  
  inflating: Food_101/onion_rings/75146.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._75146.jpg  
  inflating: Food_101/onion_rings/146249.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._146249.jpg  
  inflating: Food_101/onion_rings/3375760.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3375760.jpg  
  inflating: Food_101/onion_rings/2024866.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2024866.jpg  
  inflating: Food_101/onion_rings/583490.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._583490.jpg  
  inflating: Food_101/onion_rings/702122.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._702122.jpg  
  inflating: Food_101/onion_rings/1060584.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1060584.jpg  
  inflating: Food_101/onion_rings/3469890.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3469890.jpg  
  inflating: Food_101/onion_rings/3574786.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3574786.jpg  
  inflating: Food_101/onion_rings/2684928.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2684928.jpg  
  inflating: Food_101/onion_rings/1259236.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1259236.jpg  
  inflating: Food_101/onion_rings/2387754.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2387754.jpg  
  inflating: Food_101/onion_rings/1164655.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1164655.jpg  
  inflating: Food_101/onion_rings/437727.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._437727.jpg  
  inflating: Food_101/onion_rings/154705.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._154705.jpg  
  inflating: Food_101/onion_rings/82479.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._82479.jpg  
  inflating: Food_101/onion_rings/3325590.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3325590.jpg  
  inflating: Food_101/onion_rings/2163640.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2163640.jpg  
  inflating: Food_101/onion_rings/1388309.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1388309.jpg  
  inflating: Food_101/onion_rings/1957191.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1957191.jpg  
  inflating: Food_101/onion_rings/2731375.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2731375.jpg  
  inflating: Food_101/onion_rings/1997362.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1997362.jpg  
  inflating: Food_101/onion_rings/3568152.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3568152.jpg  
  inflating: Food_101/onion_rings/1684774.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1684774.jpg  
  inflating: Food_101/onion_rings/50766.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._50766.jpg  
  inflating: Food_101/onion_rings/817541.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._817541.jpg  
  inflating: Food_101/onion_rings/3712621.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3712621.jpg  
  inflating: Food_101/onion_rings/991917.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._991917.jpg  
  inflating: Food_101/onion_rings/3749180.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3749180.jpg  
  inflating: Food_101/onion_rings/2020722.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2020722.jpg  
  inflating: Food_101/onion_rings/1207488.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1207488.jpg  
  inflating: Food_101/onion_rings/3142701.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3142701.jpg  
  inflating: Food_101/onion_rings/1306972.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1306972.jpg  
  inflating: Food_101/onion_rings/667681.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._667681.jpg  
  inflating: Food_101/onion_rings/1126.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1126.jpg  
  inflating: Food_101/onion_rings/168716.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._168716.jpg  
  inflating: Food_101/onion_rings/1126429.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1126429.jpg  
  inflating: Food_101/onion_rings/86863.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._86863.jpg  
  inflating: Food_101/onion_rings/27707.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._27707.jpg  
  inflating: Food_101/onion_rings/2888365.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2888365.jpg  
  inflating: Food_101/onion_rings/2860815.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2860815.jpg  
  inflating: Food_101/onion_rings/3620283.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3620283.jpg  
  inflating: Food_101/onion_rings/3319178.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3319178.jpg  
  inflating: Food_101/onion_rings/1817698.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1817698.jpg  
  inflating: Food_101/onion_rings/665653.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._665653.jpg  
  inflating: Food_101/onion_rings/123878.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._123878.jpg  
  inflating: Food_101/onion_rings/1089625.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1089625.jpg  
  inflating: Food_101/onion_rings/755237.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._755237.jpg  
  inflating: Food_101/onion_rings/805025.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._805025.jpg  
  inflating: Food_101/onion_rings/502328.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._502328.jpg  
  inflating: Food_101/onion_rings/1767558.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1767558.jpg  
  inflating: Food_101/onion_rings/1155799.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1155799.jpg  
  inflating: Food_101/onion_rings/1723332.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1723332.jpg  
  inflating: Food_101/onion_rings/406166.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._406166.jpg  
  inflating: Food_101/onion_rings/2428943.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2428943.jpg  
  inflating: Food_101/onion_rings/3827309.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3827309.jpg  
  inflating: Food_101/onion_rings/2734337.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2734337.jpg  
  inflating: Food_101/onion_rings/2254620.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2254620.jpg  
  inflating: Food_101/onion_rings/2772376.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2772376.jpg  
  inflating: Food_101/onion_rings/2135266.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2135266.jpg  
  inflating: Food_101/onion_rings/306499.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._306499.jpg  
  inflating: Food_101/onion_rings/2613763.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2613763.jpg  
  inflating: Food_101/onion_rings/1195557.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1195557.jpg  
  inflating: Food_101/onion_rings/2344396.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2344396.jpg  
  inflating: Food_101/onion_rings/2912716.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2912716.jpg  
  inflating: Food_101/onion_rings/1922385.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1922385.jpg  
  inflating: Food_101/onion_rings/2594313.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2594313.jpg  
  inflating: Food_101/onion_rings/3031103.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3031103.jpg  
  inflating: Food_101/onion_rings/1058914.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1058914.jpg  
  inflating: Food_101/onion_rings/2969617.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2969617.jpg  
  inflating: Food_101/onion_rings/3281888.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3281888.jpg  
  inflating: Food_101/onion_rings/127174.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._127174.jpg  
  inflating: Food_101/onion_rings/605617.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._605617.jpg  
  inflating: Food_101/onion_rings/2823093.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2823093.jpg  
  inflating: Food_101/onion_rings/1459180.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1459180.jpg  
  inflating: Food_101/onion_rings/1264072.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1264072.jpg  
  inflating: Food_101/onion_rings/2887719.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2887719.jpg  
  inflating: Food_101/onion_rings/1836694.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1836694.jpg  
  inflating: Food_101/onion_rings/1019009.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1019009.jpg  
  inflating: Food_101/onion_rings/1298424.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1298424.jpg  
  inflating: Food_101/onion_rings/394266.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._394266.jpg  
  inflating: Food_101/onion_rings/2367822.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2367822.jpg  
  inflating: Food_101/onion_rings/1226309.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1226309.jpg  
  inflating: Food_101/onion_rings/2857672.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2857672.jpg  
  inflating: Food_101/onion_rings/1193278.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1193278.jpg  
  inflating: Food_101/onion_rings/102531.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._102531.jpg  
  inflating: Food_101/onion_rings/2742666.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2742666.jpg  
  inflating: Food_101/onion_rings/1457783.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1457783.jpg  
  inflating: Food_101/onion_rings/2761256.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2761256.jpg  
  inflating: Food_101/onion_rings/633776.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._633776.jpg  
  inflating: Food_101/onion_rings/2343572.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2343572.jpg  
  inflating: Food_101/onion_rings/3710023.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3710023.jpg  
  inflating: Food_101/onion_rings/2968864.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2968864.jpg  
  inflating: Food_101/onion_rings/3863415.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3863415.jpg  
  inflating: Food_101/onion_rings/2239592.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2239592.jpg  
  inflating: Food_101/onion_rings/3740819.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3740819.jpg  
  inflating: Food_101/onion_rings/141436.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._141436.jpg  
  inflating: Food_101/onion_rings/2209684.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2209684.jpg  
  inflating: Food_101/onion_rings/3291290.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3291290.jpg  
  inflating: Food_101/onion_rings/2755330.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2755330.jpg  
  inflating: Food_101/onion_rings/3886670.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3886670.jpg  
  inflating: Food_101/onion_rings/1130248.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1130248.jpg  
  inflating: Food_101/onion_rings/3291253.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3291253.jpg  
  inflating: Food_101/onion_rings/1834122.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1834122.jpg  
  inflating: Food_101/onion_rings/2369776.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2369776.jpg  
  inflating: Food_101/onion_rings/1870600.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1870600.jpg  
  inflating: Food_101/onion_rings/1801953.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1801953.jpg  
  inflating: Food_101/onion_rings/2957937.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2957937.jpg  
  inflating: Food_101/onion_rings/2394162.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2394162.jpg  
  inflating: Food_101/onion_rings/2357673.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2357673.jpg  
  inflating: Food_101/onion_rings/1600926.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1600926.jpg  
  inflating: Food_101/onion_rings/1200509.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1200509.jpg  
  inflating: Food_101/onion_rings/3738183.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3738183.jpg  
  inflating: Food_101/onion_rings/1344808.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1344808.jpg  
  inflating: Food_101/onion_rings/1883549.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1883549.jpg  
  inflating: Food_101/onion_rings/521243.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._521243.jpg  
  inflating: Food_101/onion_rings/2825806.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2825806.jpg  
  inflating: Food_101/onion_rings/2223496.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2223496.jpg  
  inflating: Food_101/onion_rings/629880.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._629880.jpg  
  inflating: Food_101/onion_rings/3358319.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3358319.jpg  
  inflating: Food_101/onion_rings/1778452.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1778452.jpg  
  inflating: Food_101/onion_rings/634620.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._634620.jpg  
  inflating: Food_101/onion_rings/1626260.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1626260.jpg  
  inflating: Food_101/onion_rings/2130484.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2130484.jpg  
  inflating: Food_101/onion_rings/849577.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._849577.jpg  
  inflating: Food_101/onion_rings/1396797.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1396797.jpg  
  inflating: Food_101/onion_rings/3159055.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3159055.jpg  
  inflating: Food_101/onion_rings/1791569.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1791569.jpg  
  inflating: Food_101/onion_rings/2788959.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2788959.jpg  
  inflating: Food_101/onion_rings/2210511.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2210511.jpg  
  inflating: Food_101/onion_rings/87362.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._87362.jpg  
  inflating: Food_101/onion_rings/1852477.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1852477.jpg  
  inflating: Food_101/onion_rings/3096432.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3096432.jpg  
  inflating: Food_101/onion_rings/1440565.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1440565.jpg  
  inflating: Food_101/onion_rings/1548887.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1548887.jpg  
  inflating: Food_101/onion_rings/2316028.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2316028.jpg  
  inflating: Food_101/onion_rings/1476014.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1476014.jpg  
  inflating: Food_101/onion_rings/3112120.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3112120.jpg  
  inflating: Food_101/onion_rings/2358151.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2358151.jpg  
  inflating: Food_101/onion_rings/2693799.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2693799.jpg  
  inflating: Food_101/onion_rings/1183281.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1183281.jpg  
  inflating: Food_101/onion_rings/3886315.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3886315.jpg  
  inflating: Food_101/onion_rings/84253.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._84253.jpg  
  inflating: Food_101/onion_rings/3130805.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3130805.jpg  
  inflating: Food_101/onion_rings/1239038.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1239038.jpg  
  inflating: Food_101/onion_rings/1886568.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1886568.jpg  
  inflating: Food_101/onion_rings/1606017.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1606017.jpg  
  inflating: Food_101/onion_rings/190518.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._190518.jpg  
  inflating: Food_101/onion_rings/2857339.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2857339.jpg  
  inflating: Food_101/onion_rings/38345.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._38345.jpg  
  inflating: Food_101/onion_rings/1498308.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1498308.jpg  
  inflating: Food_101/onion_rings/2278291.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2278291.jpg  
  inflating: Food_101/onion_rings/1752491.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1752491.jpg  
  inflating: Food_101/onion_rings/3255016.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3255016.jpg  
  inflating: Food_101/onion_rings/1074382.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1074382.jpg  
  inflating: Food_101/onion_rings/2701764.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2701764.jpg  
  inflating: Food_101/onion_rings/3779284.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3779284.jpg  
  inflating: Food_101/onion_rings/461528.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._461528.jpg  
  inflating: Food_101/onion_rings/269461.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._269461.jpg  
  inflating: Food_101/onion_rings/3757145.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3757145.jpg  
  inflating: Food_101/onion_rings/1428636.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1428636.jpg  
  inflating: Food_101/onion_rings/2027507.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2027507.jpg  
  inflating: Food_101/onion_rings/2191879.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2191879.jpg  
  inflating: Food_101/onion_rings/3876380.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3876380.jpg  
  inflating: Food_101/onion_rings/95986.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._95986.jpg  
  inflating: Food_101/onion_rings/3383097.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3383097.jpg  
  inflating: Food_101/onion_rings/1276465.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1276465.jpg  
  inflating: Food_101/onion_rings/722278.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._722278.jpg  
  inflating: Food_101/onion_rings/292980.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._292980.jpg  
  inflating: Food_101/onion_rings/1972984.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1972984.jpg  
  inflating: Food_101/onion_rings/1471192.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1471192.jpg  
  inflating: Food_101/onion_rings/1915260.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1915260.jpg  
  inflating: Food_101/onion_rings/1466149.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1466149.jpg  
  inflating: Food_101/onion_rings/686055.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._686055.jpg  
  inflating: Food_101/onion_rings/282991.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._282991.jpg  
  inflating: Food_101/onion_rings/1037898.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1037898.jpg  
  inflating: Food_101/onion_rings/3868343.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3868343.jpg  
  inflating: Food_101/onion_rings/3357760.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3357760.jpg  
  inflating: Food_101/onion_rings/3419640.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3419640.jpg  
  inflating: Food_101/onion_rings/1744392.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1744392.jpg  
  inflating: Food_101/onion_rings/962052.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._962052.jpg  
  inflating: Food_101/onion_rings/3341116.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3341116.jpg  
  inflating: Food_101/onion_rings/1069715.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1069715.jpg  
  inflating: Food_101/onion_rings/3696446.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3696446.jpg  
  inflating: Food_101/onion_rings/1135532.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1135532.jpg  
  inflating: Food_101/onion_rings/1974310.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1974310.jpg  
  inflating: Food_101/onion_rings/68177.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._68177.jpg  
  inflating: Food_101/onion_rings/3142699.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3142699.jpg  
  inflating: Food_101/onion_rings/1151936.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1151936.jpg  
  inflating: Food_101/onion_rings/61621.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._61621.jpg  
  inflating: Food_101/onion_rings/2561175.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2561175.jpg  
  inflating: Food_101/onion_rings/2889875.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2889875.jpg  
  inflating: Food_101/onion_rings/63624.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._63624.jpg  
  inflating: Food_101/onion_rings/3188796.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3188796.jpg  
  inflating: Food_101/onion_rings/3581223.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3581223.jpg  
  inflating: Food_101/onion_rings/3159440.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3159440.jpg  
  inflating: Food_101/onion_rings/80540.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._80540.jpg  
  inflating: Food_101/onion_rings/3645540.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3645540.jpg  
  inflating: Food_101/onion_rings/85376.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._85376.jpg  
  inflating: Food_101/onion_rings/3253843.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3253843.jpg  
  inflating: Food_101/onion_rings/757023.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._757023.jpg  
  inflating: Food_101/onion_rings/869715.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._869715.jpg  
  inflating: Food_101/onion_rings/764614.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._764614.jpg  
  inflating: Food_101/onion_rings/960731.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._960731.jpg  
  inflating: Food_101/onion_rings/1786616.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1786616.jpg  
  inflating: Food_101/onion_rings/2423024.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2423024.jpg  
  inflating: Food_101/onion_rings/2115775.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2115775.jpg  
  inflating: Food_101/onion_rings/807033.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._807033.jpg  
  inflating: Food_101/onion_rings/941716.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._941716.jpg  
  inflating: Food_101/onion_rings/3364223.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3364223.jpg  
  inflating: Food_101/onion_rings/3795987.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3795987.jpg  
  inflating: Food_101/onion_rings/2524761.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2524761.jpg  
  inflating: Food_101/onion_rings/2709887.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2709887.jpg  
  inflating: Food_101/onion_rings/2925747.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2925747.jpg  
  inflating: Food_101/onion_rings/3582502.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3582502.jpg  
  inflating: Food_101/onion_rings/3544431.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3544431.jpg  
  inflating: Food_101/onion_rings/1220595.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1220595.jpg  
  inflating: Food_101/onion_rings/688457.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._688457.jpg  
  inflating: Food_101/onion_rings/2128804.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2128804.jpg  
  inflating: Food_101/onion_rings/2150767.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2150767.jpg  
  inflating: Food_101/onion_rings/606520.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._606520.jpg  
  inflating: Food_101/onion_rings/2856232.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2856232.jpg  
  inflating: Food_101/onion_rings/327080.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._327080.jpg  
  inflating: Food_101/onion_rings/1851623.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1851623.jpg  
  inflating: Food_101/onion_rings/3061042.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3061042.jpg  
  inflating: Food_101/onion_rings/1336903.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1336903.jpg  
  inflating: Food_101/onion_rings/707945.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._707945.jpg  
  inflating: Food_101/onion_rings/3022147.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3022147.jpg  
  inflating: Food_101/onion_rings/3246848.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3246848.jpg  
  inflating: Food_101/onion_rings/3606719.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3606719.jpg  
  inflating: Food_101/onion_rings/3626344.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3626344.jpg  
  inflating: Food_101/onion_rings/2827024.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2827024.jpg  
  inflating: Food_101/onion_rings/2437866.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2437866.jpg  
  inflating: Food_101/onion_rings/3352632.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3352632.jpg  
  inflating: Food_101/onion_rings/1662356.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1662356.jpg  
  inflating: Food_101/onion_rings/3738153.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3738153.jpg  
  inflating: Food_101/onion_rings/2813380.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2813380.jpg  
  inflating: Food_101/onion_rings/907178.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._907178.jpg  
  inflating: Food_101/onion_rings/3225322.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3225322.jpg  
  inflating: Food_101/onion_rings/199648.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._199648.jpg  
  inflating: Food_101/onion_rings/2906570.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2906570.jpg  
  inflating: Food_101/onion_rings/2367984.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2367984.jpg  
  inflating: Food_101/onion_rings/852347.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._852347.jpg  
  inflating: Food_101/onion_rings/2362630.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2362630.jpg  
  inflating: Food_101/onion_rings/1794167.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1794167.jpg  
  inflating: Food_101/onion_rings/2888413.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2888413.jpg  
  inflating: Food_101/onion_rings/548966.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._548966.jpg  
  inflating: Food_101/onion_rings/1440205.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1440205.jpg  
  inflating: Food_101/onion_rings/3780838.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3780838.jpg  
  inflating: Food_101/onion_rings/2417180.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2417180.jpg  
  inflating: Food_101/onion_rings/1682103.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1682103.jpg  
  inflating: Food_101/onion_rings/1567651.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1567651.jpg  
  inflating: Food_101/onion_rings/2337745.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2337745.jpg  
  inflating: Food_101/onion_rings/2860965.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2860965.jpg  
  inflating: Food_101/onion_rings/2940479.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2940479.jpg  
  inflating: Food_101/onion_rings/3297427.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3297427.jpg  
  inflating: Food_101/onion_rings/586170.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._586170.jpg  
  inflating: Food_101/onion_rings/3131502.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3131502.jpg  
  inflating: Food_101/onion_rings/3518367.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3518367.jpg  
  inflating: Food_101/onion_rings/2467103.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2467103.jpg  
  inflating: Food_101/onion_rings/1428350.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1428350.jpg  
  inflating: Food_101/onion_rings/646307.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._646307.jpg  
  inflating: Food_101/onion_rings/3469549.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3469549.jpg  
  inflating: Food_101/onion_rings/2903756.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2903756.jpg  
  inflating: Food_101/onion_rings/1355686.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1355686.jpg  
  inflating: Food_101/onion_rings/2812124.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2812124.jpg  
  inflating: Food_101/onion_rings/3748254.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3748254.jpg  
  inflating: Food_101/onion_rings/2437711.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2437711.jpg  
  inflating: Food_101/onion_rings/3273009.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3273009.jpg  
  inflating: Food_101/onion_rings/1797073.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1797073.jpg  
  inflating: Food_101/onion_rings/2655662.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2655662.jpg  
  inflating: Food_101/onion_rings/2019627.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2019627.jpg  
  inflating: Food_101/onion_rings/3772679.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3772679.jpg  
  inflating: Food_101/onion_rings/3760533.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3760533.jpg  
  inflating: Food_101/onion_rings/3779076.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3779076.jpg  
  inflating: Food_101/onion_rings/2437936.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2437936.jpg  
  inflating: Food_101/onion_rings/1848578.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1848578.jpg  
  inflating: Food_101/onion_rings/3152533.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3152533.jpg  
  inflating: Food_101/onion_rings/1249922.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1249922.jpg  
  inflating: Food_101/onion_rings/3702163.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3702163.jpg  
  inflating: Food_101/onion_rings/1384011.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1384011.jpg  
  inflating: Food_101/onion_rings/3559652.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3559652.jpg  
  inflating: Food_101/onion_rings/1451463.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1451463.jpg  
  inflating: Food_101/onion_rings/489070.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._489070.jpg  
  inflating: Food_101/onion_rings/2959045.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2959045.jpg  
  inflating: Food_101/onion_rings/1689113.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1689113.jpg  
  inflating: Food_101/onion_rings/680615.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._680615.jpg  
  inflating: Food_101/onion_rings/2939955.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2939955.jpg  
  inflating: Food_101/onion_rings/3842002.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3842002.jpg  
  inflating: Food_101/onion_rings/1853776.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1853776.jpg  
  inflating: Food_101/onion_rings/1640449.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1640449.jpg  
  inflating: Food_101/onion_rings/252573.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._252573.jpg  
  inflating: Food_101/onion_rings/3394269.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3394269.jpg  
  inflating: Food_101/onion_rings/1243348.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1243348.jpg  
  inflating: Food_101/onion_rings/3876416.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3876416.jpg  
  inflating: Food_101/onion_rings/1689852.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1689852.jpg  
  inflating: Food_101/onion_rings/1882885.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1882885.jpg  
  inflating: Food_101/onion_rings/1275407.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1275407.jpg  
  inflating: Food_101/onion_rings/2100570.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2100570.jpg  
  inflating: Food_101/onion_rings/1697852.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1697852.jpg  
  inflating: Food_101/onion_rings/113781.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._113781.jpg  
  inflating: Food_101/onion_rings/2101875.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2101875.jpg  
  inflating: Food_101/onion_rings/77500.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._77500.jpg  
  inflating: Food_101/onion_rings/556759.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._556759.jpg  
  inflating: Food_101/onion_rings/299367.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._299367.jpg  
  inflating: Food_101/onion_rings/147474.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._147474.jpg  
  inflating: Food_101/onion_rings/2105435.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2105435.jpg  
  inflating: Food_101/onion_rings/3192312.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3192312.jpg  
  inflating: Food_101/onion_rings/609971.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._609971.jpg  
  inflating: Food_101/onion_rings/3249747.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3249747.jpg  
  inflating: Food_101/onion_rings/3216243.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3216243.jpg  
  inflating: Food_101/onion_rings/2350117.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2350117.jpg  
  inflating: Food_101/onion_rings/1482996.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1482996.jpg  
  inflating: Food_101/onion_rings/1240654.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1240654.jpg  
  inflating: Food_101/onion_rings/734372.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._734372.jpg  
  inflating: Food_101/onion_rings/3293275.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3293275.jpg  
  inflating: Food_101/onion_rings/2520654.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2520654.jpg  
  inflating: Food_101/onion_rings/1787117.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1787117.jpg  
  inflating: Food_101/onion_rings/564258.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._564258.jpg  
  inflating: Food_101/onion_rings/2616404.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2616404.jpg  
  inflating: Food_101/onion_rings/1613986.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1613986.jpg  
  inflating: Food_101/onion_rings/2081251.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2081251.jpg  
  inflating: Food_101/onion_rings/2414334.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2414334.jpg  
  inflating: Food_101/onion_rings/2863521.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2863521.jpg  
  inflating: Food_101/onion_rings/2246629.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2246629.jpg  
  inflating: Food_101/onion_rings/3324385.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3324385.jpg  
  inflating: Food_101/onion_rings/1587018.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1587018.jpg  
  inflating: Food_101/onion_rings/3836635.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3836635.jpg  
  inflating: Food_101/onion_rings/138101.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._138101.jpg  
  inflating: Food_101/onion_rings/586395.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._586395.jpg  
  inflating: Food_101/onion_rings/1440584.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1440584.jpg  
  inflating: Food_101/onion_rings/1372779.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1372779.jpg  
  inflating: Food_101/onion_rings/3269252.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3269252.jpg  
  inflating: Food_101/onion_rings/1045637.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1045637.jpg  
  inflating: Food_101/onion_rings/382380.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._382380.jpg  
  inflating: Food_101/onion_rings/3783332.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3783332.jpg  
  inflating: Food_101/onion_rings/1382893.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1382893.jpg  
  inflating: Food_101/onion_rings/461917.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._461917.jpg  
  inflating: Food_101/onion_rings/395401.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._395401.jpg  
  inflating: Food_101/onion_rings/2186853.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2186853.jpg  
  inflating: Food_101/onion_rings/994697.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._994697.jpg  
  inflating: Food_101/onion_rings/1063425.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1063425.jpg  
  inflating: Food_101/onion_rings/3678355.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3678355.jpg  
  inflating: Food_101/onion_rings/1722811.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1722811.jpg  
  inflating: Food_101/onion_rings/2049763.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2049763.jpg  
  inflating: Food_101/onion_rings/2485834.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2485834.jpg  
  inflating: Food_101/onion_rings/532368.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._532368.jpg  
  inflating: Food_101/onion_rings/1600324.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1600324.jpg  
  inflating: Food_101/onion_rings/2958760.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2958760.jpg  
  inflating: Food_101/onion_rings/2640287.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2640287.jpg  
  inflating: Food_101/onion_rings/2634506.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2634506.jpg  
  inflating: Food_101/onion_rings/1980868.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1980868.jpg  
  inflating: Food_101/onion_rings/358459.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._358459.jpg  
  inflating: Food_101/onion_rings/1382661.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1382661.jpg  
  inflating: Food_101/onion_rings/3524137.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3524137.jpg  
  inflating: Food_101/onion_rings/2695109.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2695109.jpg  
  inflating: Food_101/onion_rings/1265549.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1265549.jpg  
  inflating: Food_101/onion_rings/796869.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._796869.jpg  
  inflating: Food_101/onion_rings/3393317.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3393317.jpg  
  inflating: Food_101/onion_rings/294279.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._294279.jpg  
  inflating: Food_101/onion_rings/923361.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._923361.jpg  
  inflating: Food_101/onion_rings/2420939.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2420939.jpg  
  inflating: Food_101/onion_rings/680616.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._680616.jpg  
  inflating: Food_101/onion_rings/1093313.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1093313.jpg  
  inflating: Food_101/onion_rings/3109332.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3109332.jpg  
  inflating: Food_101/onion_rings/2265637.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2265637.jpg  
  inflating: Food_101/onion_rings/640383.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._640383.jpg  
  inflating: Food_101/onion_rings/685961.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._685961.jpg  
  inflating: Food_101/onion_rings/1864898.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1864898.jpg  
  inflating: Food_101/onion_rings/503558.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._503558.jpg  
  inflating: Food_101/onion_rings/1020126.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1020126.jpg  
  inflating: Food_101/onion_rings/1723112.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1723112.jpg  
  inflating: Food_101/onion_rings/2210928.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2210928.jpg  
  inflating: Food_101/onion_rings/2137491.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2137491.jpg  
  inflating: Food_101/onion_rings/784882.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._784882.jpg  
  inflating: Food_101/onion_rings/2411104.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2411104.jpg  
  inflating: Food_101/onion_rings/3830118.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3830118.jpg  
  inflating: Food_101/onion_rings/1125512.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1125512.jpg  
  inflating: Food_101/onion_rings/209010.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._209010.jpg  
  inflating: Food_101/onion_rings/3390568.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3390568.jpg  
  inflating: Food_101/onion_rings/421289.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._421289.jpg  
  inflating: Food_101/onion_rings/247357.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._247357.jpg  
  inflating: Food_101/onion_rings/93684.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._93684.jpg  
  inflating: Food_101/onion_rings/3401770.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3401770.jpg  
  inflating: Food_101/onion_rings/450303.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._450303.jpg  
  inflating: Food_101/onion_rings/962738.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._962738.jpg  
  inflating: Food_101/onion_rings/1287888.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1287888.jpg  
  inflating: Food_101/onion_rings/1936311.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1936311.jpg  
  inflating: Food_101/onion_rings/824751.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._824751.jpg  
  inflating: Food_101/onion_rings/1022297.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1022297.jpg  
  inflating: Food_101/onion_rings/3708074.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3708074.jpg  
  inflating: Food_101/onion_rings/1076822.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1076822.jpg  
  inflating: Food_101/onion_rings/326757.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._326757.jpg  
  inflating: Food_101/onion_rings/892346.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._892346.jpg  
  inflating: Food_101/onion_rings/1995848.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1995848.jpg  
  inflating: Food_101/onion_rings/2542011.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2542011.jpg  
  inflating: Food_101/onion_rings/3164108.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3164108.jpg  
  inflating: Food_101/onion_rings/1204015.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1204015.jpg  
  inflating: Food_101/onion_rings/1365366.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1365366.jpg  
  inflating: Food_101/onion_rings/711132.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._711132.jpg  
  inflating: Food_101/onion_rings/810621.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._810621.jpg  
  inflating: Food_101/onion_rings/131668.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._131668.jpg  
  inflating: Food_101/onion_rings/3765111.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3765111.jpg  
  inflating: Food_101/onion_rings/2448474.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2448474.jpg  
  inflating: Food_101/onion_rings/3875055.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3875055.jpg  
  inflating: Food_101/onion_rings/3089484.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3089484.jpg  
  inflating: Food_101/onion_rings/2227571.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2227571.jpg  
  inflating: Food_101/onion_rings/342428.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._342428.jpg  
  inflating: Food_101/onion_rings/3468670.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3468670.jpg  
  inflating: Food_101/onion_rings/2993404.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2993404.jpg  
  inflating: Food_101/onion_rings/2227773.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2227773.jpg  
  inflating: Food_101/onion_rings/567424.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._567424.jpg  
  inflating: Food_101/onion_rings/113634.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._113634.jpg  
  inflating: Food_101/onion_rings/343097.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._343097.jpg  
  inflating: Food_101/onion_rings/944880.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._944880.jpg  
  inflating: Food_101/onion_rings/2423992.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2423992.jpg  
  inflating: Food_101/onion_rings/3822337.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3822337.jpg  
  inflating: Food_101/onion_rings/1298166.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1298166.jpg  
  inflating: Food_101/onion_rings/924635.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._924635.jpg  
  inflating: Food_101/onion_rings/3836418.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3836418.jpg  
  inflating: Food_101/onion_rings/2006926.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2006926.jpg  
  inflating: Food_101/onion_rings/2508242.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2508242.jpg  
  inflating: Food_101/onion_rings/874764.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._874764.jpg  
  inflating: Food_101/onion_rings/3260503.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3260503.jpg  
  inflating: Food_101/onion_rings/2692111.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2692111.jpg  
  inflating: Food_101/onion_rings/2285856.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2285856.jpg  
  inflating: Food_101/onion_rings/1095820.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1095820.jpg  
  inflating: Food_101/onion_rings/2258438.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2258438.jpg  
  inflating: Food_101/onion_rings/3287373.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3287373.jpg  
  inflating: Food_101/onion_rings/2401070.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2401070.jpg  
  inflating: Food_101/onion_rings/2083469.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2083469.jpg  
  inflating: Food_101/onion_rings/1923240.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1923240.jpg  
  inflating: Food_101/onion_rings/1282274.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1282274.jpg  
  inflating: Food_101/onion_rings/3853848.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3853848.jpg  
  inflating: Food_101/onion_rings/3629928.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3629928.jpg  
  inflating: Food_101/onion_rings/1874873.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1874873.jpg  
  inflating: Food_101/onion_rings/526520.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._526520.jpg  
  inflating: Food_101/onion_rings/3574301.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3574301.jpg  
  inflating: Food_101/onion_rings/2521001.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2521001.jpg  
  inflating: Food_101/onion_rings/1364281.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1364281.jpg  
  inflating: Food_101/onion_rings/1630341.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1630341.jpg  
  inflating: Food_101/onion_rings/923984.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._923984.jpg  
  inflating: Food_101/onion_rings/914697.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._914697.jpg  
  inflating: Food_101/onion_rings/250175.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._250175.jpg  
  inflating: Food_101/onion_rings/402468.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._402468.jpg  
  inflating: Food_101/onion_rings/2093337.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2093337.jpg  
  inflating: Food_101/onion_rings/96707.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._96707.jpg  
  inflating: Food_101/onion_rings/990226.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._990226.jpg  
  inflating: Food_101/onion_rings/2194458.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2194458.jpg  
  inflating: Food_101/onion_rings/2894226.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2894226.jpg  
  inflating: Food_101/onion_rings/2418871.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2418871.jpg  
  inflating: Food_101/onion_rings/146022.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._146022.jpg  
  inflating: Food_101/onion_rings/1741220.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1741220.jpg  
  inflating: Food_101/onion_rings/1467539.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1467539.jpg  
  inflating: Food_101/onion_rings/1945852.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1945852.jpg  
  inflating: Food_101/onion_rings/1218405.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1218405.jpg  
  inflating: Food_101/onion_rings/2559420.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2559420.jpg  
  inflating: Food_101/onion_rings/1129674.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1129674.jpg  
  inflating: Food_101/onion_rings/3774623.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3774623.jpg  
  inflating: Food_101/onion_rings/890030.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._890030.jpg  
  inflating: Food_101/onion_rings/1808761.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1808761.jpg  
  inflating: Food_101/onion_rings/634572.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._634572.jpg  
  inflating: Food_101/onion_rings/650792.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._650792.jpg  
  inflating: Food_101/onion_rings/2527908.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2527908.jpg  
  inflating: Food_101/onion_rings/2977546.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2977546.jpg  
  inflating: Food_101/onion_rings/1267366.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1267366.jpg  
  inflating: Food_101/onion_rings/3112138.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3112138.jpg  
  inflating: Food_101/onion_rings/1294775.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1294775.jpg  
  inflating: Food_101/onion_rings/487502.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._487502.jpg  
  inflating: Food_101/onion_rings/2759088.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2759088.jpg  
  inflating: Food_101/onion_rings/2078584.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2078584.jpg  
  inflating: Food_101/onion_rings/1842522.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1842522.jpg  
  inflating: Food_101/onion_rings/2618003.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2618003.jpg  
  inflating: Food_101/onion_rings/2357291.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2357291.jpg  
  inflating: Food_101/onion_rings/3903449.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3903449.jpg  
  inflating: Food_101/onion_rings/3021096.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3021096.jpg  
  inflating: Food_101/onion_rings/1655323.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1655323.jpg  
  inflating: Food_101/onion_rings/1733930.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1733930.jpg  
  inflating: Food_101/onion_rings/169835.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._169835.jpg  
  inflating: Food_101/onion_rings/2716004.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2716004.jpg  
  inflating: Food_101/onion_rings/3063516.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3063516.jpg  
  inflating: Food_101/onion_rings/307615.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._307615.jpg  
  inflating: Food_101/onion_rings/2852049.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2852049.jpg  
  inflating: Food_101/onion_rings/466503.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._466503.jpg  
  inflating: Food_101/onion_rings/3821371.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3821371.jpg  
  inflating: Food_101/onion_rings/3022006.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3022006.jpg  
  inflating: Food_101/onion_rings/2505215.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2505215.jpg  
  inflating: Food_101/onion_rings/83644.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._83644.jpg  
  inflating: Food_101/onion_rings/3881070.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3881070.jpg  
  inflating: Food_101/onion_rings/2699655.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2699655.jpg  
  inflating: Food_101/onion_rings/3539969.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3539969.jpg  
  inflating: Food_101/onion_rings/3013152.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3013152.jpg  
  inflating: Food_101/onion_rings/117535.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._117535.jpg  
  inflating: Food_101/onion_rings/550304.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._550304.jpg  
  inflating: Food_101/onion_rings/2396578.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2396578.jpg  
  inflating: Food_101/onion_rings/3039744.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3039744.jpg  
  inflating: Food_101/onion_rings/497673.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._497673.jpg  
  inflating: Food_101/onion_rings/1861528.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1861528.jpg  
  inflating: Food_101/onion_rings/2959295.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2959295.jpg  
  inflating: Food_101/onion_rings/948855.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._948855.jpg  
  inflating: Food_101/onion_rings/231588.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._231588.jpg  
  inflating: Food_101/onion_rings/2752082.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2752082.jpg  
  inflating: Food_101/onion_rings/3790940.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3790940.jpg  
  inflating: Food_101/onion_rings/1248769.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1248769.jpg  
  inflating: Food_101/onion_rings/1221091.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1221091.jpg  
  inflating: Food_101/onion_rings/1686967.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1686967.jpg  
  inflating: Food_101/onion_rings/2988618.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2988618.jpg  
  inflating: Food_101/onion_rings/1355089.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1355089.jpg  
  inflating: Food_101/onion_rings/1937784.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1937784.jpg  
  inflating: Food_101/onion_rings/1620811.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1620811.jpg  
  inflating: Food_101/onion_rings/131732.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._131732.jpg  
  inflating: Food_101/onion_rings/1685922.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1685922.jpg  
  inflating: Food_101/onion_rings/1868727.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1868727.jpg  
  inflating: Food_101/onion_rings/3747215.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3747215.jpg  
  inflating: Food_101/onion_rings/1008652.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1008652.jpg  
  inflating: Food_101/onion_rings/3907214.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3907214.jpg  
  inflating: Food_101/onion_rings/2577721.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2577721.jpg  
  inflating: Food_101/onion_rings/3799233.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3799233.jpg  
  inflating: Food_101/onion_rings/1259499.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1259499.jpg  
  inflating: Food_101/onion_rings/2485400.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2485400.jpg  
  inflating: Food_101/onion_rings/1987494.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1987494.jpg  
  inflating: Food_101/onion_rings/3491012.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3491012.jpg  
  inflating: Food_101/onion_rings/1134746.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1134746.jpg  
  inflating: Food_101/onion_rings/796113.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._796113.jpg  
  inflating: Food_101/onion_rings/2463146.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2463146.jpg  
  inflating: Food_101/onion_rings/3018370.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3018370.jpg  
  inflating: Food_101/onion_rings/2591111.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2591111.jpg  
  inflating: Food_101/onion_rings/3213706.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3213706.jpg  
  inflating: Food_101/onion_rings/1717844.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1717844.jpg  
  inflating: Food_101/onion_rings/886255.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._886255.jpg  
  inflating: Food_101/onion_rings/415945.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._415945.jpg  
  inflating: Food_101/onion_rings/2538482.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2538482.jpg  
  inflating: Food_101/onion_rings/538182.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._538182.jpg  
  inflating: Food_101/onion_rings/2315039.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2315039.jpg  
  inflating: Food_101/onion_rings/546460.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._546460.jpg  
  inflating: Food_101/onion_rings/2889617.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2889617.jpg  
  inflating: Food_101/onion_rings/3104702.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3104702.jpg  
  inflating: Food_101/onion_rings/1203848.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1203848.jpg  
  inflating: Food_101/onion_rings/689068.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._689068.jpg  
  inflating: Food_101/onion_rings/3359495.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3359495.jpg  
  inflating: Food_101/onion_rings/920620.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._920620.jpg  
  inflating: Food_101/onion_rings/3312655.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3312655.jpg  
  inflating: Food_101/onion_rings/1796044.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1796044.jpg  
  inflating: Food_101/onion_rings/1166846.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1166846.jpg  
  inflating: Food_101/onion_rings/2675843.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2675843.jpg  
  inflating: Food_101/onion_rings/1859576.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1859576.jpg  
  inflating: Food_101/onion_rings/2996119.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2996119.jpg  
  inflating: Food_101/onion_rings/74527.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._74527.jpg  
  inflating: Food_101/onion_rings/2567582.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2567582.jpg  
  inflating: Food_101/onion_rings/1671634.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1671634.jpg  
  inflating: Food_101/onion_rings/524839.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._524839.jpg  
  inflating: Food_101/onion_rings/721735.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._721735.jpg  
  inflating: Food_101/onion_rings/2573722.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2573722.jpg  
  inflating: Food_101/onion_rings/202694.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._202694.jpg  
  inflating: Food_101/onion_rings/3073824.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3073824.jpg  
  inflating: Food_101/onion_rings/1564732.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1564732.jpg  
  inflating: Food_101/onion_rings/2825890.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2825890.jpg  
  inflating: Food_101/onion_rings/3715093.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3715093.jpg  
  inflating: Food_101/onion_rings/3586643.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3586643.jpg  
  inflating: Food_101/onion_rings/70557.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._70557.jpg  
  inflating: Food_101/onion_rings/2727446.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2727446.jpg  
  inflating: Food_101/onion_rings/176634.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._176634.jpg  
  inflating: Food_101/onion_rings/3373686.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3373686.jpg  
  inflating: Food_101/onion_rings/1815557.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1815557.jpg  
  inflating: Food_101/onion_rings/590184.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._590184.jpg  
  inflating: Food_101/onion_rings/1352964.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1352964.jpg  
  inflating: Food_101/onion_rings/647116.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._647116.jpg  
  inflating: Food_101/onion_rings/2093352.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2093352.jpg  
  inflating: Food_101/onion_rings/211414.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._211414.jpg  
  inflating: Food_101/onion_rings/2291700.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2291700.jpg  
  inflating: Food_101/onion_rings/2444400.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2444400.jpg  
  inflating: Food_101/onion_rings/1059490.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1059490.jpg  
  inflating: Food_101/onion_rings/2208445.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2208445.jpg  
  inflating: Food_101/onion_rings/598043.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._598043.jpg  
  inflating: Food_101/onion_rings/1217784.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1217784.jpg  
  inflating: Food_101/onion_rings/2406828.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2406828.jpg  
  inflating: Food_101/onion_rings/2664967.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2664967.jpg  
  inflating: Food_101/onion_rings/210905.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._210905.jpg  
  inflating: Food_101/onion_rings/2656862.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2656862.jpg  
  inflating: Food_101/onion_rings/1397033.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1397033.jpg  
  inflating: Food_101/onion_rings/2720076.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2720076.jpg  
  inflating: Food_101/onion_rings/3547368.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3547368.jpg  
  inflating: Food_101/onion_rings/1969503.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1969503.jpg  
  inflating: Food_101/onion_rings/898541.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._898541.jpg  
  inflating: Food_101/onion_rings/741605.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._741605.jpg  
  inflating: Food_101/onion_rings/1522438.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1522438.jpg  
  inflating: Food_101/onion_rings/1147043.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1147043.jpg  
  inflating: Food_101/onion_rings/2048152.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2048152.jpg  
  inflating: Food_101/onion_rings/738107.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._738107.jpg  
  inflating: Food_101/onion_rings/2888905.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2888905.jpg  
  inflating: Food_101/onion_rings/3869178.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3869178.jpg  
  inflating: Food_101/onion_rings/2883105.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2883105.jpg  
  inflating: Food_101/onion_rings/3697898.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3697898.jpg  
  inflating: Food_101/onion_rings/3516480.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3516480.jpg  
  inflating: Food_101/onion_rings/527062.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._527062.jpg  
  inflating: Food_101/onion_rings/533003.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._533003.jpg  
  inflating: Food_101/onion_rings/1724597.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1724597.jpg  
  inflating: Food_101/onion_rings/1748459.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1748459.jpg  
  inflating: Food_101/onion_rings/2635848.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2635848.jpg  
  inflating: Food_101/onion_rings/2199053.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2199053.jpg  
  inflating: Food_101/onion_rings/569457.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._569457.jpg  
  inflating: Food_101/onion_rings/781621.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._781621.jpg  
  inflating: Food_101/onion_rings/1683933.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1683933.jpg  
  inflating: Food_101/onion_rings/2382346.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2382346.jpg  
  inflating: Food_101/onion_rings/1408748.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1408748.jpg  
  inflating: Food_101/onion_rings/3352070.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3352070.jpg  
  inflating: Food_101/onion_rings/2905612.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2905612.jpg  
  inflating: Food_101/onion_rings/3204949.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3204949.jpg  
  inflating: Food_101/onion_rings/337566.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._337566.jpg  
  inflating: Food_101/onion_rings/2322319.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2322319.jpg  
  inflating: Food_101/onion_rings/480008.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._480008.jpg  
  inflating: Food_101/onion_rings/197783.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._197783.jpg  
  inflating: Food_101/onion_rings/1594987.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1594987.jpg  
  inflating: Food_101/onion_rings/2912385.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2912385.jpg  
  inflating: Food_101/onion_rings/779429.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._779429.jpg  
  inflating: Food_101/onion_rings/1045865.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1045865.jpg  
  inflating: Food_101/onion_rings/393561.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._393561.jpg  
  inflating: Food_101/onion_rings/3010947.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3010947.jpg  
  inflating: Food_101/onion_rings/920179.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._920179.jpg  
  inflating: Food_101/onion_rings/3718013.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3718013.jpg  
  inflating: Food_101/onion_rings/3347938.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3347938.jpg  
  inflating: Food_101/onion_rings/2890219.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2890219.jpg  
  inflating: Food_101/onion_rings/2377536.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2377536.jpg  
  inflating: Food_101/onion_rings/607726.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._607726.jpg  
  inflating: Food_101/onion_rings/1949982.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1949982.jpg  
  inflating: Food_101/onion_rings/1339490.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1339490.jpg  
  inflating: Food_101/onion_rings/3208746.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3208746.jpg  
  inflating: Food_101/onion_rings/2876011.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2876011.jpg  
  inflating: Food_101/onion_rings/1306648.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1306648.jpg  
  inflating: Food_101/onion_rings/3575079.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3575079.jpg  
  inflating: Food_101/onion_rings/2728986.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2728986.jpg  
  inflating: Food_101/onion_rings/85913.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._85913.jpg  
  inflating: Food_101/onion_rings/1121065.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1121065.jpg  
  inflating: Food_101/onion_rings/505406.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._505406.jpg  
  inflating: Food_101/onion_rings/2355218.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2355218.jpg  
  inflating: Food_101/onion_rings/2144384.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2144384.jpg  
  inflating: Food_101/onion_rings/297302.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._297302.jpg  
  inflating: Food_101/onion_rings/2606844.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2606844.jpg  
  inflating: Food_101/onion_rings/135519.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._135519.jpg  
  inflating: Food_101/onion_rings/231923.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._231923.jpg  
  inflating: Food_101/onion_rings/98200.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._98200.jpg  
  inflating: Food_101/onion_rings/3023354.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3023354.jpg  
  inflating: Food_101/onion_rings/681387.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._681387.jpg  
  inflating: Food_101/onion_rings/2020560.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2020560.jpg  
  inflating: Food_101/onion_rings/311239.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._311239.jpg  
  inflating: Food_101/onion_rings/3494133.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3494133.jpg  
  inflating: Food_101/onion_rings/83998.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._83998.jpg  
  inflating: Food_101/onion_rings/2495845.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2495845.jpg  
  inflating: Food_101/onion_rings/477318.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._477318.jpg  
  inflating: Food_101/onion_rings/2801307.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2801307.jpg  
  inflating: Food_101/onion_rings/2130571.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2130571.jpg  
  inflating: Food_101/onion_rings/843839.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._843839.jpg  
  inflating: Food_101/onion_rings/439507.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._439507.jpg  
  inflating: Food_101/onion_rings/2106028.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2106028.jpg  
  inflating: Food_101/onion_rings/28869.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._28869.jpg  
  inflating: Food_101/onion_rings/1225453.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1225453.jpg  
  inflating: Food_101/onion_rings/3814157.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3814157.jpg  
  inflating: Food_101/onion_rings/244943.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._244943.jpg  
  inflating: Food_101/onion_rings/2535611.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2535611.jpg  
  inflating: Food_101/onion_rings/3235005.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3235005.jpg  
  inflating: Food_101/onion_rings/2827105.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2827105.jpg  
  inflating: Food_101/onion_rings/3475685.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3475685.jpg  
  inflating: Food_101/onion_rings/2498632.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2498632.jpg  
  inflating: Food_101/onion_rings/2950825.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2950825.jpg  
  inflating: Food_101/onion_rings/134993.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._134993.jpg  
  inflating: Food_101/onion_rings/3421161.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3421161.jpg  
  inflating: Food_101/onion_rings/1499487.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1499487.jpg  
  inflating: Food_101/onion_rings/3422454.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3422454.jpg  
  inflating: Food_101/onion_rings/2579976.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2579976.jpg  
  inflating: Food_101/onion_rings/869346.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._869346.jpg  
  inflating: Food_101/onion_rings/2754690.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2754690.jpg  
  inflating: Food_101/onion_rings/1987740.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1987740.jpg  
  inflating: Food_101/onion_rings/1811722.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1811722.jpg  
  inflating: Food_101/onion_rings/2400906.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2400906.jpg  
  inflating: Food_101/onion_rings/330146.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._330146.jpg  
  inflating: Food_101/onion_rings/2313506.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2313506.jpg  
  inflating: Food_101/onion_rings/1160014.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1160014.jpg  
  inflating: Food_101/onion_rings/2926347.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2926347.jpg  
  inflating: Food_101/onion_rings/2247619.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2247619.jpg  
  inflating: Food_101/onion_rings/1666603.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1666603.jpg  
  inflating: Food_101/onion_rings/177511.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._177511.jpg  
  inflating: Food_101/onion_rings/1431913.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1431913.jpg  
  inflating: Food_101/onion_rings/1768612.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1768612.jpg  
  inflating: Food_101/onion_rings/3670817.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3670817.jpg  
  inflating: Food_101/onion_rings/2829934.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2829934.jpg  
  inflating: Food_101/onion_rings/1094631.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1094631.jpg  
  inflating: Food_101/onion_rings/1674763.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1674763.jpg  
  inflating: Food_101/onion_rings/769992.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._769992.jpg  
  inflating: Food_101/onion_rings/2628570.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2628570.jpg  
  inflating: Food_101/onion_rings/942698.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._942698.jpg  
  inflating: Food_101/onion_rings/798980.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._798980.jpg  
  inflating: Food_101/onion_rings/1193360.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1193360.jpg  
  inflating: Food_101/onion_rings/2641263.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2641263.jpg  
  inflating: Food_101/onion_rings/3329001.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3329001.jpg  
  inflating: Food_101/onion_rings/1887392.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1887392.jpg  
  inflating: Food_101/onion_rings/3184663.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3184663.jpg  
  inflating: Food_101/onion_rings/2614470.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2614470.jpg  
  inflating: Food_101/onion_rings/970979.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._970979.jpg  
  inflating: Food_101/onion_rings/746144.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._746144.jpg  
  inflating: Food_101/onion_rings/3568428.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3568428.jpg  
  inflating: Food_101/onion_rings/713145.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._713145.jpg  
  inflating: Food_101/onion_rings/2152130.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2152130.jpg  
  inflating: Food_101/onion_rings/3752056.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3752056.jpg  
  inflating: Food_101/onion_rings/3543691.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3543691.jpg  
  inflating: Food_101/onion_rings/2323598.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2323598.jpg  
  inflating: Food_101/onion_rings/1585332.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1585332.jpg  
  inflating: Food_101/onion_rings/470857.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._470857.jpg  
  inflating: Food_101/onion_rings/3721245.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3721245.jpg  
  inflating: Food_101/onion_rings/2936009.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2936009.jpg  
  inflating: Food_101/onion_rings/3378689.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3378689.jpg  
  inflating: Food_101/onion_rings/3447622.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3447622.jpg  
  inflating: Food_101/onion_rings/1616535.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1616535.jpg  
  inflating: Food_101/onion_rings/949450.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._949450.jpg  
  inflating: Food_101/onion_rings/703632.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._703632.jpg  
  inflating: Food_101/onion_rings/1728395.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1728395.jpg  
  inflating: Food_101/onion_rings/2951053.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2951053.jpg  
  inflating: Food_101/onion_rings/500381.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._500381.jpg  
  inflating: Food_101/onion_rings/2168090.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2168090.jpg  
  inflating: Food_101/onion_rings/328681.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._328681.jpg  
  inflating: Food_101/onion_rings/3113938.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3113938.jpg  
  inflating: Food_101/onion_rings/190015.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._190015.jpg  
  inflating: Food_101/onion_rings/360404.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._360404.jpg  
  inflating: Food_101/onion_rings/2348844.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2348844.jpg  
  inflating: Food_101/onion_rings/204196.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._204196.jpg  
  inflating: Food_101/onion_rings/1600625.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1600625.jpg  
  inflating: Food_101/onion_rings/3511664.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3511664.jpg  
  inflating: Food_101/onion_rings/3895847.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3895847.jpg  
  inflating: Food_101/onion_rings/319892.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._319892.jpg  
  inflating: Food_101/onion_rings/3584333.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3584333.jpg  
  inflating: Food_101/onion_rings/1441616.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1441616.jpg  
  inflating: Food_101/onion_rings/3523007.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3523007.jpg  
  inflating: Food_101/onion_rings/3191330.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3191330.jpg  
  inflating: Food_101/onion_rings/3453251.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3453251.jpg  
  inflating: Food_101/onion_rings/3353022.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3353022.jpg  
  inflating: Food_101/onion_rings/3834482.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3834482.jpg  
  inflating: Food_101/onion_rings/1250811.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1250811.jpg  
  inflating: Food_101/onion_rings/1850769.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1850769.jpg  
  inflating: Food_101/onion_rings/2243332.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2243332.jpg  
  inflating: Food_101/onion_rings/1330698.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1330698.jpg  
  inflating: Food_101/onion_rings/2596740.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2596740.jpg  
  inflating: Food_101/onion_rings/1502303.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1502303.jpg  
  inflating: Food_101/onion_rings/3645851.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3645851.jpg  
  inflating: Food_101/onion_rings/1549896.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1549896.jpg  
  inflating: Food_101/onion_rings/2274574.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2274574.jpg  
  inflating: Food_101/onion_rings/468148.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._468148.jpg  
  inflating: Food_101/onion_rings/1693306.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1693306.jpg  
  inflating: Food_101/onion_rings/3552614.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3552614.jpg  
  inflating: Food_101/onion_rings/3201981.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3201981.jpg  
  inflating: Food_101/onion_rings/3298391.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3298391.jpg  
  inflating: Food_101/onion_rings/2889767.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2889767.jpg  
  inflating: Food_101/onion_rings/698767.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._698767.jpg  
  inflating: Food_101/onion_rings/1863765.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1863765.jpg  
  inflating: Food_101/onion_rings/3331705.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._3331705.jpg  
  inflating: Food_101/onion_rings/1061095.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1061095.jpg  
  inflating: Food_101/onion_rings/1511961.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1511961.jpg  
  inflating: Food_101/onion_rings/1646659.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1646659.jpg  
  inflating: Food_101/onion_rings/2657204.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2657204.jpg  
  inflating: Food_101/onion_rings/2358667.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2358667.jpg  
  inflating: Food_101/onion_rings/2667660.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2667660.jpg  
  inflating: Food_101/onion_rings/1287782.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._1287782.jpg  
  inflating: Food_101/onion_rings/2224579.jpg  
  inflating: __MACOSX/Food_101/onion_rings/._2224579.jpg  
In [ ]:
# Image folder
food_101_image_folder = '/content/Food_101/'

Overview of Original Dataset Images by Class (No Bounding Boxes)¶

Visual Inspection of Annotated Images (With Bounding Boxes)¶

The Food101 dataset contains a total of 16,256 images categorized into 17 different food classes. Each class represents a type of food, such as apple_pie, pizza, samosa, etc.

This section presents a visual inspection of sample images with bounding box annotations, which highlight the region of interest (i.e., the food item) within each image.

Key Details:¶

  • The dataset can be split into training and testing sets in a 70-30 ratio per class.
  • Each food category has approximately 1,000 images, except for apple_pie, which has fewer samples.
  • Bounding boxes help localize the food item in the image, which is useful for object detection or improving classification accuracy by focusing the model on relevant image regions.

Purpose of this Visualization:¶

  • To visually verify the quality and accuracy of bounding box annotations.
  • To understand how localized regions differ across classes and image samples.
  • To evaluate whether bounding box information can aid in better feature learning for classification or detection tasks.

Below, we inspect a few representative examples from different classes with their bounding boxes overlaid.

Helper Functions¶

In [ ]:
# Metadat Class for storing it
class IdentityMetadata():
    def __init__(self, base, name, file, size):
        # print(base, name, file)
        # dataset base directory
        self.base = base
        # identity name
        self.name = name
        # image file name
        self.file = file
        self.size=size

    def __repr__(self):
        return self.image_path()

    def image_path(self):
        return os.path.join(self.base, self.name, self.file)

def load_metadata(path):
    """
    Load metadata for all images in a directory
    """
    if not os.path.exists(path):
        raise ValueError(f"Path does not exist: {path}")

    metadata = []
    for index, folder in enumerate(os.listdir(path)):
        subdir_path = os.path.join(path, folder)
        if not os.path.isdir(subdir_path):
            continue  # Skip files like .DS_Store or any non-folder

        # Get all valid image files in the subdirectory
        image_files = [f for f in os.listdir(subdir_path)
                       if f.lower().endswith(('.jpg', '.jpeg'))]

        total_images = len(image_files)

        for file in image_files:
            metadata.append(IdentityMetadata(path, folder, file, total_images))

    return np.array(metadata)

# Read & Load Image
def load_image(path):
  """
  Load image from path
  """
  img = cv2.imread(path)
  # Convert to RGB
  return cv2.cvtColor(img, cv2.COLOR_BGR2RGB)

def split_metadata_per_class(metadata_list, train_ratio=0.7, seed=42):
    random.seed(seed)

    # Step 1: Group by identity (class name)
    class_groups = defaultdict(list)
    for meta in metadata_list:
        class_groups[meta.name].append(meta)

    train_set = []
    test_set = []

    # Step 2: Shuffle and split each class group
    for identity, items in class_groups.items():
        random.shuffle(items)
        split_index = int(len(items) * train_ratio)
        train_set.extend(items[:split_index])
        test_set.extend(items[split_index:])

    return train_set, test_set


def organize_dataset(metadata_list, base_output_dir):
    """
    Organize dataset into subdirectories by class
    """
    if not os.path.exists(base_output_dir):
        os.makedirs(base_output_dir)

    for meta in metadata_list:
        label_dir = os.path.join(base_output_dir, meta.name)
        os.makedirs(label_dir, exist_ok=True)
        src = meta.image_path()
        dst = os.path.join(label_dir, meta.file)
        shutil.copy2(src, dst)


def draw_yolo_bboxes_from_csv(data_dir, image_file, annotations_df, ax=None, food_class='images'):
    images_dir = os.path.join(data_dir, food_class)
    image_path = os.path.join(images_dir, image_file)

    # Load image
    image = cv2.imread(image_path)
    if image is None:
        print(f"❌ Image not found: {image_path}")
        return
    image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
    height, width, _ = image.shape

    # Filter annotations for this image
    boxes = annotations_df[annotations_df['image'] == image_file]

    if boxes.empty:
        print(f"⚠️ No annotations found for: {image_file}")
        return

    # Draw each bounding box
    for _, row in boxes.iterrows():
        class_id = row['class_name']
        x_center = float(row['x_center']) * width
        y_center = float(row['y_center']) * height
        w = float(row['width']) * width
        h = float(row['height']) * height

        x1 = int(x_center - w / 2)
        y1 = int(y_center - h / 2)
        x2 = int(x_center + w / 2)
        y2 = int(y_center + h / 2)

        # Draw rectangle and class_id
        # Draw rectangle and class_id
        cv2.rectangle(image_rgb, (x1, y1), (x2, y2), (0, 0, 255), 2)  # Changed to blue (BGR format)
        cv2.putText(image_rgb, str(class_id), (x1, y1 - 10),
                    cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 255), 2)  # Changed to blue (BGR format)

    if ax is None:
        plt.figure(figsize=(40, 40))
        plt.imshow(image_rgb)
        plt.axis('off')
        plt.title(f"{image_file}")
        plt.show()
    else:
        ax.imshow(image_rgb)
        ax.axis('off')
In [ ]:
# load image metadata from folder
metadata = load_metadata(food_101_image_folder)

# Print metadata shape to get total number of images
print("Total number of images:", metadata.shape)

# Print folder path
print("\nDataset folder path:", food_101_image_folder)

# Get unique food class names from metadata
food_classes = sorted(list(set(item.name for item in metadata)))

# Print food class names
print("\nFood classes in dataset:")
for food_class in food_classes:
    print(f"- {food_class}")
Total number of images: (16256,)

Dataset folder path: /content/Food_101/

Food classes in dataset:
- apple_pie
- chocolate_cake
- donuts
- falafel
- french_fries
- hot_dog
- ice_cream
- nachos
- onion_rings
- pancakes
- pizza
- ravioli
- samosa
- spring_rolls
- strawberry_shortcake
- tacos
- waffles

Observation:¶

Total number of images¶

  • The dataset consists of 16,256 images.

Dataset folder path¶

  • The images are located in the folder path: asset/Food_101.
  1. Dataset Size: The dataset contains 16,256 images, which is a reasonable size for training machine learning models. However, you may need to apply data augmentation techniques or preprocessing to account for class imbalances or variations in image content.

  2. Food Class Distribution: It's crucial to analyze the class distribution. Some food classes might have more images than others. To address this, you might want to consider techniques like oversampling, undersampling, or using class weights in the machine learning model.

  3. Class Variety: The dataset includes a wide range of food items, from desserts (apple pie, chocolate cake, ice cream) to savory items (pizza, tacos, falafel). This makes the classification task more challenging due to the variability in shapes, textures, and visual features across food items.

  4. Data Preprocessing: The typical preprocessing steps for image classification include:

    • Resizing images to a consistent size.
    • Normalization (scaling pixel values to a range of 0-1).
    • Data augmentation (rotating, flipping, and adjusting color jitter). These steps help ensure that the model generalizes well and avoids overfitting.
  5. Performance Metrics: Metrics like accuracy, precision, recall, and F1-score should be evaluated. These metrics help assess the model's ability to distinguish between different food classes, especially when some are more challenging to classify.

In [ ]:
# Updated configuration
n_classes_to_sample = 10
samples_per_class = 3
max_images = n_classes_to_sample * samples_per_class

plt.figure(figsize=(18, 12))
seen = {}
plotted = 0

for item in metadata:
    class_name = item.name
    if seen.get(class_name, 0) < samples_per_class:
        img = cv2.imread(item.image_path())
        if img is None:
            print(f"Warning: Could not read image {item.image_path()}")
            continue

        img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
        height, width, channels = img.shape
        is_grayscale = channels == 1

        plt.subplot(n_classes_to_sample, samples_per_class, plotted + 1)
        plt.imshow(img)
        plt.title(f"{class_name}\n{width}x{height}\n{'Gray' if is_grayscale else 'RGB'}")
        plt.axis('off')

        seen[class_name] = seen.get(class_name, 0) + 1
        plotted += 1

        if plotted >= max_images:
            break

plt.tight_layout()
plt.show()
No description has been provided for this image

Observations:¶

  • Consistent Color Space:

    • All images are RGB, which is standard and expected for deep learning models using convolutional networks.
  • Variable Image Dimensions:

    • Although most images are square (512x512), several have non-square resolutions (e.g., 512x342, 382x512, 512x384).
    • This introduces aspect ratio variability, which may affect model performance if not handled properly.
  • Centered Composition:

    • Most food items appear well-centered, with minimal background clutter.
    • This suggests that the bounding boxes or crops (if applied) were done with reasonable accuracy.
  • Intra-class Variation:

    • Each class (e.g., samosa, falafel, apple_pie) shows visual variation in texture, orientation, and plating.
    • This is beneficial for training robust classifiers but may require data augmentation to generalize well.
  • Preprocessing Needed:

    • Normalize image sizes (e.g., resize all to 224×224 or 299×299 depending on model input).
    • Consider aspect ratio preservation or intelligent cropping.
  • Data Augmentation Recommended:

    • Techniques like random cropping, rotation, zoom, and brightness adjustments will improve generalization.
  • Improves Model Generalization:

    • Bounding boxes help the model learn discriminative visual patterns with greater consistency across the dataset.
In [ ]:
# Create a DataFrame to show class distribution
class_counts = {}

for class_name in os.listdir(food_101_image_folder):
    if os.path.isdir(os.path.join(food_101_image_folder, class_name)):
        class_size = len(os.listdir(os.path.join(food_101_image_folder, class_name)))
        class_counts[class_name] = class_size

df = pd.DataFrame(list(class_counts.items()), columns=['class_name', 'class_size'])
df.set_index('class_name', inplace=True)
df
Out[ ]:
class_size
class_name
tacos 1000
falafel 1000
donuts 1000
samosa 1000
french_fries 1000
pancakes 1000
hot_dog 1000
strawberry_shortcake 1000
onion_rings 1000
ravioli 1000
nachos 1000
apple_pie 257
ice_cream 1000
waffles 1000
chocolate_cake 1000
pizza 1000
spring_rolls 1000
In [ ]:
# show in barplot
sns.barplot(x=df.index, y=df['class_size'],color='r')
plt.xticks(rotation=90)
plt.show()
No description has been provided for this image

Observation:¶

  1. Uniform Distribution Across Most Classes

    • Out of the 17 total food classes, 16 classes have exactly 1000 images.
    • This indicates a mostly well-balanced dataset, which is beneficial for training classification models without inherent bias.
  2. Class Imbalance – apple_pie

    • The apple_pie class has only 257 images, which is significantly lower than the others.
    • This imbalance may negatively affect the model's ability to correctly classify apple_pie, leading to:
      • Lower recall and precision for the minority class.
      • Potential model bias toward majority classes.
  3. Potential Mitigation Strategies
    To address the class imbalance:

    • Data Augmentation: Apply augmentation (rotation, flipping, color jittering) to synthetically increase the number of apple_pie images.
    • Class Weights: Use class weights in the loss function during training to emphasize learning on the minority class.
    • SMOTE or Oversampling Techniques (if suitable for images).
    • Undersampling other classes (less preferred due to loss of valuable data).
  4. Impact on Model Evaluation

    • Use evaluation metrics such as F1-score, Recall, and Confusion Matrix in addition to Accuracy.
    • These metrics will better highlight the model’s performance on the imbalanced class.
  5. Need for Visual Exploration

    • Visual inspection of apple_pie images may help understand why the count is low (e.g., ambiguous visuals, data collection issue).

Visual Inspection of Annotated Images (With Bounding Boxes)¶

The Food101 dataset contains a total of 16,256 images categorized into 17 different food classes. Each class represents a type of food, such as apple_pie, pizza, samosa, etc.

This section presents a visual inspection of sample images with bounding box annotations, which highlight the region of interest (i.e., the food item) within each image.

Key Details:¶

  • The dataset can be split into training and testing sets in a 70-30 ratio per class.
  • Each food category has approximately 1,000 images, except for apple_pie, which has fewer samples.
  • Bounding boxes help localize the food item in the image, which is useful for object detection or improving classification accuracy by focusing the model on relevant image regions.

Purpose of this Visualization:¶

  • To visually verify the quality and accuracy of bounding box annotations.
  • To understand how localized regions differ across classes and image samples.
  • To evaluate whether bounding box information can aid in better feature learning for classification or detection tasks.

Below, we inspect a few representative examples from different classes with their bounding boxes overlaid.


Dataset Annotation Overview¶

We have successfully annotated our image dataset and stored the results in a file named annotation_csv. This file adheres to the YOLO format, with the following columns:

  • image_name: Name of the image file.
  • class_name: Object category label.
  • x_center, y_center, width, height: Bounding box coordinates normalized to the [0, 1] range.

How We Annotated the Data¶

We used a hybrid approach combining automated tools and AI assistance to efficiently generate high-quality annotations:

  • YOLOv8 and YOLOv11: Employed for automatic object detection and initial bounding box generation.

  • ChatGPT API: Used to pass images directly and receive bounding box predictions for objects, especially helpful in cases requiring semantic understanding or where pretrained models struggled.

  • Roboflow: Used as a platform for annotation review, correction, and dataset management. It helped streamline the export process into YOLO format and ensured consistency.


Usage in Training Pipeline¶

The annotation_csv will be used for:

  • Data Preparation: Parsing annotations in YOLO format for image-label mapping.
  • Model Training: Feeding normalized bounding boxes and class labels into the training pipeline.

This multi-tool approach ensures a robust, scalable, and AI-assisted annotation pipeline tailored for object detection tasks.

Loading Annotation Data and Extracting Food Classes¶

In this step, we load the refined annotation data from the Food_101_Annotation directory. The annotation file (annotation_refined.csv) contains important metadata such as image file names, bounding box coordinates, and corresponding food class labels.

We extract and display the list of unique food classes present in the dataset to understand the classification scope.

In [ ]:
!unzip '/content/drive/MyDrive/Python Course_shared/computer Vision/annotation/Food-101-Annotated-V3.zip'
Archive:  /content/drive/MyDrive/Python Course_shared/computer Vision/annotation/Food-101-Annotated-V3.zip
   creating: Food-101-Annotated/
  inflating: __MACOSX/._Food-101-Annotated  
   creating: Food-101-Annotated/ice_cream/
  inflating: __MACOSX/Food-101-Annotated/._ice_cream  
   creating: Food-101-Annotated/samosa/
  inflating: __MACOSX/Food-101-Annotated/._samosa  
  inflating: Food-101-Annotated/.DS_Store  
  inflating: __MACOSX/Food-101-Annotated/._.DS_Store  
   creating: Food-101-Annotated/onion_ring/
  inflating: __MACOSX/Food-101-Annotated/._onion_ring  
   creating: Food-101-Annotated/strawberry_shortcake/
  inflating: __MACOSX/Food-101-Annotated/._strawberry_shortcake  
   creating: Food-101-Annotated/waffle/
  inflating: __MACOSX/Food-101-Annotated/._waffle  
  inflating: Food-101-Annotated/annotation_refined.csv  
  inflating: __MACOSX/Food-101-Annotated/._annotation_refined.csv  
   creating: Food-101-Annotated/chocolate_cake/
  inflating: __MACOSX/Food-101-Annotated/._chocolate_cake  
   creating: Food-101-Annotated/tacos/
  inflating: __MACOSX/Food-101-Annotated/._tacos  
   creating: Food-101-Annotated/pizza/
  inflating: __MACOSX/Food-101-Annotated/._pizza  
   creating: Food-101-Annotated/nachos/
  inflating: __MACOSX/Food-101-Annotated/._nachos  
   creating: Food-101-Annotated/french_fries/
  inflating: __MACOSX/Food-101-Annotated/._french_fries  
  inflating: Food-101-Annotated/ice_cream/85514.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._85514.jpg  
  inflating: Food-101-Annotated/ice_cream/621259.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._621259.jpg  
  inflating: Food-101-Annotated/ice_cream/1921412.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1921412.jpg  
  inflating: Food-101-Annotated/ice_cream/1176281.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1176281.jpg  
  inflating: Food-101-Annotated/ice_cream/3465698.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3465698.jpg  
  inflating: Food-101-Annotated/ice_cream/2005850.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2005850.jpg  
  inflating: Food-101-Annotated/ice_cream/2311283.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2311283.jpg  
  inflating: Food-101-Annotated/ice_cream/390886.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._390886.jpg  
  inflating: Food-101-Annotated/ice_cream/649653.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._649653.jpg  
  inflating: Food-101-Annotated/ice_cream/2862530.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2862530.jpg  
  inflating: Food-101-Annotated/ice_cream/596317.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._596317.jpg  
  inflating: Food-101-Annotated/ice_cream/1961230.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1961230.jpg  
  inflating: Food-101-Annotated/ice_cream/2752957.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2752957.jpg  
  inflating: Food-101-Annotated/ice_cream/3323080.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3323080.jpg  
   creating: Food-101-Annotated/ice_cream/resized_images/
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._resized_images  
  inflating: Food-101-Annotated/ice_cream/995145.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._995145.jpg  
  inflating: Food-101-Annotated/ice_cream/510048.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._510048.jpg  
  inflating: Food-101-Annotated/ice_cream/660729.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._660729.jpg  
  inflating: Food-101-Annotated/ice_cream/598638.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._598638.jpg  
  inflating: Food-101-Annotated/ice_cream/2985290.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2985290.jpg  
  inflating: Food-101-Annotated/ice_cream/3384471.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3384471.jpg  
  inflating: Food-101-Annotated/ice_cream/1971651.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1971651.jpg  
  inflating: Food-101-Annotated/ice_cream/1272987.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1272987.jpg  
  inflating: Food-101-Annotated/ice_cream/1068026.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1068026.jpg  
  inflating: Food-101-Annotated/ice_cream/2139248.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2139248.jpg  
  inflating: Food-101-Annotated/ice_cream/1615718.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1615718.jpg  
  inflating: Food-101-Annotated/ice_cream/1995311.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1995311.jpg  
  inflating: Food-101-Annotated/ice_cream/2289445.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2289445.jpg  
  inflating: Food-101-Annotated/ice_cream/3518829.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3518829.jpg  
  inflating: Food-101-Annotated/ice_cream/1954378.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1954378.jpg  
  inflating: Food-101-Annotated/ice_cream/518018.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._518018.jpg  
  inflating: Food-101-Annotated/ice_cream/478897.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._478897.jpg  
  inflating: Food-101-Annotated/ice_cream/1371104.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1371104.jpg  
  inflating: Food-101-Annotated/ice_cream/1629364.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1629364.jpg  
  inflating: Food-101-Annotated/ice_cream/3758284.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3758284.jpg  
  inflating: Food-101-Annotated/ice_cream/1262551.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1262551.jpg  
  inflating: Food-101-Annotated/ice_cream/1698568.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1698568.jpg  
  inflating: Food-101-Annotated/ice_cream/1839769.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1839769.jpg  
  inflating: Food-101-Annotated/ice_cream/366955.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._366955.jpg  
  inflating: Food-101-Annotated/ice_cream/517105.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._517105.jpg  
  inflating: Food-101-Annotated/ice_cream/612548.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._612548.jpg  
  inflating: Food-101-Annotated/ice_cream/669677.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._669677.jpg  
  inflating: Food-101-Annotated/ice_cream/2948329.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2948329.jpg  
  inflating: Food-101-Annotated/ice_cream/396427.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._396427.jpg  
  inflating: Food-101-Annotated/ice_cream/519403.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._519403.jpg  
  inflating: Food-101-Annotated/ice_cream/3838718.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3838718.jpg  
  inflating: Food-101-Annotated/ice_cream/1442308.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1442308.jpg  
  inflating: Food-101-Annotated/ice_cream/238730.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._238730.jpg  
  inflating: Food-101-Annotated/ice_cream/128941.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._128941.jpg  
  inflating: Food-101-Annotated/ice_cream/1910824.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1910824.jpg  
  inflating: Food-101-Annotated/ice_cream/3380318.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3380318.jpg  
  inflating: Food-101-Annotated/ice_cream/1303736.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1303736.jpg  
  inflating: Food-101-Annotated/ice_cream/243829.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._243829.jpg  
  inflating: Food-101-Annotated/ice_cream/3693594.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3693594.jpg  
  inflating: Food-101-Annotated/ice_cream/3228081.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3228081.jpg  
  inflating: Food-101-Annotated/samosa/2302.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2302.jpg  
  inflating: Food-101-Annotated/samosa/1497664.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1497664.jpg  
  inflating: Food-101-Annotated/samosa/195766.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._195766.jpg  
  inflating: Food-101-Annotated/samosa/3478622.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3478622.jpg  
  inflating: Food-101-Annotated/samosa/2998894.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2998894.jpg  
  inflating: Food-101-Annotated/samosa/2778821.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2778821.jpg  
  inflating: Food-101-Annotated/samosa/663294.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._663294.jpg  
  inflating: Food-101-Annotated/samosa/1526132.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1526132.jpg  
  inflating: Food-101-Annotated/samosa/104322.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._104322.jpg  
  inflating: Food-101-Annotated/samosa/917040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._917040.jpg  
  inflating: Food-101-Annotated/samosa/3803813.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3803813.jpg  
  inflating: Food-101-Annotated/samosa/1189287.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1189287.jpg  
  inflating: Food-101-Annotated/samosa/1449447.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1449447.jpg  
  inflating: Food-101-Annotated/samosa/15074.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._15074.jpg  
  inflating: Food-101-Annotated/samosa/1383505.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1383505.jpg  
  inflating: Food-101-Annotated/samosa/2703502.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2703502.jpg  
  inflating: Food-101-Annotated/samosa/331119.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._331119.jpg  
  inflating: Food-101-Annotated/samosa/1982708.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1982708.jpg  
  inflating: Food-101-Annotated/samosa/1453309.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1453309.jpg  
  inflating: Food-101-Annotated/samosa/3633981.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3633981.jpg  
  inflating: Food-101-Annotated/samosa/2802920.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2802920.jpg  
  inflating: Food-101-Annotated/samosa/924149.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._924149.jpg  
  inflating: Food-101-Annotated/samosa/3011172.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3011172.jpg  
   creating: Food-101-Annotated/samosa/resized_images/
  inflating: __MACOSX/Food-101-Annotated/samosa/._resized_images  
  inflating: Food-101-Annotated/samosa/2189028.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2189028.jpg  
  inflating: Food-101-Annotated/samosa/3017105.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3017105.jpg  
  inflating: Food-101-Annotated/samosa/2373677.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2373677.jpg  
  inflating: Food-101-Annotated/samosa/2408934.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2408934.jpg  
  inflating: Food-101-Annotated/samosa/2040239.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2040239.jpg  
  inflating: Food-101-Annotated/samosa/3442040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3442040.jpg  
  inflating: Food-101-Annotated/samosa/3921972.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3921972.jpg  
  inflating: Food-101-Annotated/samosa/1177448.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1177448.jpg  
  inflating: Food-101-Annotated/samosa/2117161.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2117161.jpg  
  inflating: Food-101-Annotated/samosa/2072483.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2072483.jpg  
  inflating: Food-101-Annotated/samosa/1191466.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1191466.jpg  
  inflating: Food-101-Annotated/samosa/1881590.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1881590.jpg  
  inflating: Food-101-Annotated/samosa/1239544.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1239544.jpg  
  inflating: Food-101-Annotated/samosa/6119.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._6119.jpg  
  inflating: Food-101-Annotated/samosa/3397617.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3397617.jpg  
  inflating: Food-101-Annotated/samosa/2605136.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2605136.jpg  
  inflating: Food-101-Annotated/samosa/1170314.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1170314.jpg  
  inflating: Food-101-Annotated/samosa/1083263.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1083263.jpg  
  inflating: Food-101-Annotated/samosa/918899.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._918899.jpg  
  inflating: Food-101-Annotated/samosa/1917898.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1917898.jpg  
  inflating: Food-101-Annotated/samosa/1416302.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1416302.jpg  
  inflating: Food-101-Annotated/samosa/2095432.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2095432.jpg  
  inflating: Food-101-Annotated/samosa/3436247.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3436247.jpg  
  inflating: Food-101-Annotated/samosa/862501.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._862501.jpg  
  inflating: Food-101-Annotated/samosa/1526228.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1526228.jpg  
  inflating: Food-101-Annotated/samosa/3604106.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3604106.jpg  
  inflating: Food-101-Annotated/samosa/2129469.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2129469.jpg  
  inflating: Food-101-Annotated/samosa/674960.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._674960.jpg  
  inflating: Food-101-Annotated/samosa/672929.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._672929.jpg  
  inflating: Food-101-Annotated/samosa/704897.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._704897.jpg  
  inflating: Food-101-Annotated/samosa/942933.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._942933.jpg  
  inflating: Food-101-Annotated/samosa/1939527.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1939527.jpg  
  inflating: Food-101-Annotated/samosa/328693.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._328693.jpg  
  inflating: Food-101-Annotated/samosa/1249361.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1249361.jpg  
  inflating: Food-101-Annotated/samosa/1750149.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1750149.jpg  
  inflating: Food-101-Annotated/samosa/68911.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._68911.jpg  
  inflating: Food-101-Annotated/samosa/1539989.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1539989.jpg  
  inflating: Food-101-Annotated/samosa/1460553.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1460553.jpg  
  inflating: Food-101-Annotated/samosa/1751695.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1751695.jpg  
  inflating: Food-101-Annotated/samosa/2855237.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2855237.jpg  
  inflating: Food-101-Annotated/samosa/1444587.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1444587.jpg  
  inflating: Food-101-Annotated/samosa/3470729.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3470729.jpg  
  inflating: Food-101-Annotated/samosa/261040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._261040.jpg  
  inflating: Food-101-Annotated/samosa/62383.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._62383.jpg  
  inflating: Food-101-Annotated/samosa/2348924.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2348924.jpg  
  inflating: Food-101-Annotated/samosa/3882056.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3882056.jpg  
  inflating: Food-101-Annotated/samosa/1499692.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1499692.jpg  
  inflating: Food-101-Annotated/samosa/406322.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._406322.jpg  
  inflating: Food-101-Annotated/onion_ring/192753.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._192753.jpg  
  inflating: Food-101-Annotated/onion_ring/3578344.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3578344.jpg  
  inflating: Food-101-Annotated/onion_ring/1128896.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1128896.jpg  
  inflating: Food-101-Annotated/onion_ring/933681.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._933681.jpg  
  inflating: Food-101-Annotated/onion_ring/2808504.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2808504.jpg  
  inflating: Food-101-Annotated/onion_ring/1683330.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1683330.jpg  
  inflating: Food-101-Annotated/onion_ring/2212599.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2212599.jpg  
  inflating: Food-101-Annotated/onion_ring/801386.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._801386.jpg  
  inflating: Food-101-Annotated/onion_ring/1620661.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1620661.jpg  
  inflating: Food-101-Annotated/onion_ring/437727.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._437727.jpg  
  inflating: Food-101-Annotated/onion_ring/82479.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._82479.jpg  
  inflating: Food-101-Annotated/onion_ring/2135266.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2135266.jpg  
  inflating: Food-101-Annotated/onion_ring/1836694.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1836694.jpg  
  inflating: Food-101-Annotated/onion_ring/2857672.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2857672.jpg  
  inflating: Food-101-Annotated/onion_ring/1752491.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1752491.jpg  
  inflating: Food-101-Annotated/onion_ring/1466149.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1466149.jpg  
  inflating: Food-101-Annotated/onion_ring/2561175.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2561175.jpg  
  inflating: Food-101-Annotated/onion_ring/3225322.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3225322.jpg  
  inflating: Food-101-Annotated/onion_ring/852347.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._852347.jpg  
  inflating: Food-101-Annotated/onion_ring/3748254.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3748254.jpg  
  inflating: Food-101-Annotated/onion_ring/2437711.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2437711.jpg  
  inflating: Food-101-Annotated/onion_ring/2959045.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2959045.jpg  
  inflating: Food-101-Annotated/onion_ring/3324385.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3324385.jpg  
  inflating: Food-101-Annotated/onion_ring/382380.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._382380.jpg  
  inflating: Food-101-Annotated/onion_ring/3783332.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3783332.jpg  
  inflating: Food-101-Annotated/onion_ring/784882.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._784882.jpg  
  inflating: Food-101-Annotated/onion_ring/2411104.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2411104.jpg  
  inflating: Food-101-Annotated/onion_ring/3830118.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3830118.jpg  
  inflating: Food-101-Annotated/onion_ring/944880.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._944880.jpg  
  inflating: Food-101-Annotated/onion_ring/3260503.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3260503.jpg  
  inflating: Food-101-Annotated/onion_ring/3629928.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3629928.jpg  
  inflating: Food-101-Annotated/onion_ring/1874873.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1874873.jpg  
  inflating: Food-101-Annotated/onion_ring/2527908.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2527908.jpg  
  inflating: Food-101-Annotated/onion_ring/3021096.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3021096.jpg  
  inflating: Food-101-Annotated/onion_ring/54685.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._54685.jpg  
  inflating: Food-101-Annotated/onion_ring/2463146.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2463146.jpg  
  inflating: Food-101-Annotated/onion_ring/538182.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._538182.jpg  
  inflating: Food-101-Annotated/onion_ring/2315039.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2315039.jpg  
  inflating: Food-101-Annotated/onion_ring/546460.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._546460.jpg  
  inflating: Food-101-Annotated/onion_ring/920620.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._920620.jpg  
  inflating: Food-101-Annotated/onion_ring/3715093.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3715093.jpg  
  inflating: Food-101-Annotated/onion_ring/3547368.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3547368.jpg  
  inflating: Food-101-Annotated/onion_ring/781621.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._781621.jpg  
  inflating: Food-101-Annotated/onion_ring/1408748.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1408748.jpg  
  inflating: Food-101-Annotated/onion_ring/3352070.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3352070.jpg  
  inflating: Food-101-Annotated/onion_ring/177511.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._177511.jpg  
  inflating: Food-101-Annotated/onion_ring/2829934.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2829934.jpg  
  inflating: Food-101-Annotated/onion_ring/769992.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._769992.jpg  
  inflating: Food-101-Annotated/onion_ring/500381.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._500381.jpg  
  inflating: Food-101-Annotated/onion_ring/1850769.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1850769.jpg  
  inflating: Food-101-Annotated/onion_ring/1511961.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1511961.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3705276.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3705276.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/57863.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._57863.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/16590.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._16590.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/977955.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._977955.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1031243.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1031243.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2327490.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2327490.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2808886.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2808886.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3916946.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3916946.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/97738.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._97738.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3430071.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3430071.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/80669.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._80669.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1195849.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1195849.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2965819.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2965819.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/101165.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._101165.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3690192.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3690192.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2561373.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2561373.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3843129.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3843129.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1848361.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1848361.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/463111.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._463111.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1311207.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1311207.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1916999.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1916999.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1882254.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1882254.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2226679.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2226679.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3729912.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3729912.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1881023.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1881023.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1866686.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1866686.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/724604.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._724604.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/713321.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._713321.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/263151.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._263151.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3379442.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3379442.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/702201.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._702201.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3789427.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3789427.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/57777.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._57777.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1845065.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1845065.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1342090.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1342090.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3346370.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3346370.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1758516.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1758516.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/873051.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._873051.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2745798.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2745798.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/163206.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._163206.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/730404.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._730404.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2856465.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2856465.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3541054.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3541054.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1640574.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1640574.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1957762.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1957762.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1568443.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1568443.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/683408.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._683408.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3835788.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3835788.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2180049.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2180049.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/953437.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._953437.jpg  
  inflating: Food-101-Annotated/waffle/1865250.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1865250.jpg  
  inflating: Food-101-Annotated/waffle/1564248.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1564248.jpg  
  inflating: Food-101-Annotated/waffle/70789.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._70789.jpg  
  inflating: Food-101-Annotated/waffle/2131845.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2131845.jpg  
  inflating: Food-101-Annotated/waffle/96181.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._96181.jpg  
  inflating: Food-101-Annotated/waffle/903753.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._903753.jpg  
  inflating: Food-101-Annotated/waffle/3308951.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3308951.jpg  
  inflating: Food-101-Annotated/waffle/1775307.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1775307.jpg  
  inflating: Food-101-Annotated/waffle/1852612.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1852612.jpg  
  inflating: Food-101-Annotated/waffle/3189212.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3189212.jpg  
  inflating: Food-101-Annotated/waffle/3872190.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3872190.jpg  
  inflating: Food-101-Annotated/waffle/520878.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._520878.jpg  
  inflating: Food-101-Annotated/waffle/2389143.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2389143.jpg  
  inflating: Food-101-Annotated/waffle/1397605.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1397605.jpg  
  inflating: Food-101-Annotated/waffle/2177928.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2177928.jpg  
  inflating: Food-101-Annotated/waffle/910563.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._910563.jpg  
  inflating: Food-101-Annotated/waffle/3460768.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3460768.jpg  
  inflating: Food-101-Annotated/waffle/30536.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._30536.jpg  
  inflating: Food-101-Annotated/waffle/76239.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._76239.jpg  
  inflating: Food-101-Annotated/waffle/452045.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._452045.jpg  
  inflating: Food-101-Annotated/waffle/1509171.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1509171.jpg  
  inflating: Food-101-Annotated/waffle/712973.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._712973.jpg  
  inflating: Food-101-Annotated/waffle/2139248.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2139248.jpg  
  inflating: Food-101-Annotated/waffle/2999331.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2999331.jpg  
  inflating: Food-101-Annotated/waffle/2873703.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2873703.jpg  
  inflating: Food-101-Annotated/waffle/2392474.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2392474.jpg  
  inflating: Food-101-Annotated/waffle/1245873.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1245873.jpg  
  inflating: Food-101-Annotated/waffle/119316.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._119316.jpg  
  inflating: Food-101-Annotated/waffle/88648.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._88648.jpg  
  inflating: Food-101-Annotated/waffle/2058733.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2058733.jpg  
  inflating: Food-101-Annotated/waffle/708688.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._708688.jpg  
  inflating: Food-101-Annotated/waffle/1595187.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1595187.jpg  
  inflating: Food-101-Annotated/waffle/3260936.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3260936.jpg  
  inflating: Food-101-Annotated/waffle/1698568.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1698568.jpg  
  inflating: Food-101-Annotated/waffle/789971.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._789971.jpg  
  inflating: Food-101-Annotated/waffle/2267408.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2267408.jpg  
  inflating: Food-101-Annotated/waffle/1716839.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1716839.jpg  
  inflating: Food-101-Annotated/waffle/12160.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._12160.jpg  
  inflating: Food-101-Annotated/waffle/3014576.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3014576.jpg  
  inflating: Food-101-Annotated/waffle/654779.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._654779.jpg  
  inflating: Food-101-Annotated/waffle/2135581.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2135581.jpg  
  inflating: Food-101-Annotated/waffle/1231392.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1231392.jpg  
  inflating: Food-101-Annotated/waffle/3402541.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3402541.jpg  
  inflating: Food-101-Annotated/waffle/863723.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._863723.jpg  
  inflating: Food-101-Annotated/waffle/1462386.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1462386.jpg  
  inflating: Food-101-Annotated/waffle/3598283.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3598283.jpg  
  inflating: Food-101-Annotated/waffle/3091708.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3091708.jpg  
  inflating: Food-101-Annotated/waffle/1303736.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1303736.jpg  
  inflating: Food-101-Annotated/waffle/41942.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._41942.jpg  
  inflating: Food-101-Annotated/waffle/2364175.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2364175.jpg  
  inflating: Food-101-Annotated/chocolate_cake/108268.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._108268.jpg  
  inflating: Food-101-Annotated/chocolate_cake/683202.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._683202.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3125883.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3125883.jpg  
  inflating: Food-101-Annotated/chocolate_cake/568408.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._568408.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2547504.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2547504.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3555773.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3555773.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1426052.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1426052.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1393886.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1393886.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3722155.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3722155.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1672668.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1672668.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3102746.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3102746.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1074446.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1074446.jpg  
  inflating: Food-101-Annotated/chocolate_cake/314103.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._314103.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3493807.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3493807.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2408310.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2408310.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2216361.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2216361.jpg  
  inflating: Food-101-Annotated/chocolate_cake/391530.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._391530.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3246292.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3246292.jpg  
  inflating: Food-101-Annotated/chocolate_cake/543149.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._543149.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1864488.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1864488.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2728721.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2728721.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1012759.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1012759.jpg  
  inflating: Food-101-Annotated/chocolate_cake/440860.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._440860.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3558621.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3558621.jpg  
  inflating: Food-101-Annotated/chocolate_cake/662729.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._662729.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2933079.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2933079.jpg  
  inflating: Food-101-Annotated/chocolate_cake/821815.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._821815.jpg  
  inflating: Food-101-Annotated/chocolate_cake/929332.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._929332.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3515934.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3515934.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1363933.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1363933.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3152730.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3152730.jpg  
  inflating: Food-101-Annotated/chocolate_cake/554548.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._554548.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2437841.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2437841.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2326455.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2326455.jpg  
  inflating: Food-101-Annotated/chocolate_cake/333377.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._333377.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2432478.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2432478.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3440460.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3440460.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1395253.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1395253.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1779025.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1779025.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1747450.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1747450.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3047338.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3047338.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3514876.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3514876.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2721988.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2721988.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2331005.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2331005.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3832397.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3832397.jpg  
  inflating: Food-101-Annotated/chocolate_cake/397896.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._397896.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3380282.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3380282.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2016214.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2016214.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1240545.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1240545.jpg  
  inflating: Food-101-Annotated/chocolate_cake/615682.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._615682.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3581921.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3581921.jpg  
  inflating: Food-101-Annotated/tacos/73043.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._73043.jpg  
  inflating: Food-101-Annotated/tacos/20787.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._20787.jpg  
  inflating: Food-101-Annotated/tacos/476796.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._476796.jpg  
  inflating: Food-101-Annotated/tacos/6229.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._6229.jpg  
  inflating: Food-101-Annotated/tacos/63928.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._63928.jpg  
  inflating: Food-101-Annotated/tacos/17688.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._17688.jpg  
  inflating: Food-101-Annotated/tacos/123968.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._123968.jpg  
  inflating: Food-101-Annotated/tacos/36081.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._36081.jpg  
  inflating: Food-101-Annotated/tacos/144852.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._144852.jpg  
  inflating: Food-101-Annotated/tacos/616584.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._616584.jpg  
  inflating: Food-101-Annotated/tacos/48840.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._48840.jpg  
  inflating: Food-101-Annotated/tacos/45035.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._45035.jpg  
  inflating: Food-101-Annotated/tacos/17969.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._17969.jpg  
  inflating: Food-101-Annotated/tacos/448340.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._448340.jpg  
  inflating: Food-101-Annotated/tacos/87767.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._87767.jpg  
  inflating: Food-101-Annotated/tacos/48506.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._48506.jpg  
  inflating: Food-101-Annotated/tacos/49803.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._49803.jpg  
  inflating: Food-101-Annotated/tacos/74573.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._74573.jpg  
  inflating: Food-101-Annotated/tacos/20532.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._20532.jpg  
  inflating: Food-101-Annotated/tacos/83935.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._83935.jpg  
  inflating: Food-101-Annotated/tacos/58856.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._58856.jpg  
  inflating: Food-101-Annotated/tacos/20087.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._20087.jpg  
  inflating: Food-101-Annotated/tacos/5813.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._5813.jpg  
  inflating: Food-101-Annotated/tacos/128139.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._128139.jpg  
  inflating: Food-101-Annotated/tacos/125623.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._125623.jpg  
  inflating: Food-101-Annotated/tacos/60069.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._60069.jpg  
  inflating: Food-101-Annotated/tacos/46246.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._46246.jpg  
  inflating: Food-101-Annotated/tacos/127545.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._127545.jpg  
  inflating: Food-101-Annotated/tacos/54252.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._54252.jpg  
  inflating: Food-101-Annotated/tacos/56337.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._56337.jpg  
  inflating: Food-101-Annotated/tacos/121283.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._121283.jpg  
  inflating: Food-101-Annotated/tacos/131906.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._131906.jpg  
  inflating: Food-101-Annotated/tacos/2030.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._2030.jpg  
  inflating: Food-101-Annotated/tacos/27330.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._27330.jpg  
  inflating: Food-101-Annotated/tacos/470015.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._470015.jpg  
  inflating: Food-101-Annotated/tacos/54685.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._54685.jpg  
  inflating: Food-101-Annotated/tacos/108945.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._108945.jpg  
  inflating: Food-101-Annotated/tacos/122809.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._122809.jpg  
  inflating: Food-101-Annotated/tacos/91964.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._91964.jpg  
  inflating: Food-101-Annotated/tacos/63099.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._63099.jpg  
  inflating: Food-101-Annotated/tacos/44578.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._44578.jpg  
  inflating: Food-101-Annotated/tacos/24844.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._24844.jpg  
  inflating: Food-101-Annotated/tacos/108529.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._108529.jpg  
  inflating: Food-101-Annotated/tacos/85137.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._85137.jpg  
  inflating: Food-101-Annotated/tacos/8350.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._8350.jpg  
  inflating: Food-101-Annotated/tacos/21440.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._21440.jpg  
  inflating: Food-101-Annotated/tacos/25784.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._25784.jpg  
  inflating: Food-101-Annotated/tacos/132307.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._132307.jpg  
  inflating: Food-101-Annotated/tacos/80931.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._80931.jpg  
  inflating: Food-101-Annotated/tacos/26489.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._26489.jpg  
  inflating: Food-101-Annotated/tacos/53758.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._53758.jpg  
  inflating: Food-101-Annotated/tacos/75990.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._75990.jpg  
  inflating: Food-101-Annotated/pizza/384215.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._384215.jpg  
  inflating: Food-101-Annotated/pizza/89892.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._89892.jpg  
  inflating: Food-101-Annotated/pizza/1499661.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1499661.jpg  
  inflating: Food-101-Annotated/pizza/1325918.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1325918.jpg  
  inflating: Food-101-Annotated/pizza/1504421.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1504421.jpg  
  inflating: Food-101-Annotated/pizza/951953.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._951953.jpg  
  inflating: Food-101-Annotated/pizza/63480.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._63480.jpg  
  inflating: Food-101-Annotated/pizza/299535.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._299535.jpg  
  inflating: Food-101-Annotated/pizza/1717790.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1717790.jpg  
  inflating: Food-101-Annotated/pizza/614236.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._614236.jpg  
  inflating: Food-101-Annotated/pizza/124815.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._124815.jpg  
  inflating: Food-101-Annotated/pizza/3785667.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3785667.jpg  
  inflating: Food-101-Annotated/pizza/317861.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._317861.jpg  
  inflating: Food-101-Annotated/pizza/1026922.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1026922.jpg  
  inflating: Food-101-Annotated/pizza/966644.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._966644.jpg  
  inflating: Food-101-Annotated/pizza/1898723.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1898723.jpg  
  inflating: Food-101-Annotated/pizza/324942.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._324942.jpg  
  inflating: Food-101-Annotated/pizza/168879.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._168879.jpg  
  inflating: Food-101-Annotated/pizza/1289139.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1289139.jpg  
  inflating: Food-101-Annotated/pizza/34632.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._34632.jpg  
  inflating: Food-101-Annotated/pizza/212995.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._212995.jpg  
  inflating: Food-101-Annotated/pizza/3822139.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3822139.jpg  
  inflating: Food-101-Annotated/pizza/148765.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._148765.jpg  
  inflating: Food-101-Annotated/pizza/899959.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._899959.jpg  
  inflating: Food-101-Annotated/pizza/741491.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._741491.jpg  
  inflating: Food-101-Annotated/pizza/83538.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._83538.jpg  
  inflating: Food-101-Annotated/pizza/1897129.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1897129.jpg  
  inflating: Food-101-Annotated/pizza/2811032.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._2811032.jpg  
  inflating: Food-101-Annotated/pizza/514014.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._514014.jpg  
  inflating: Food-101-Annotated/pizza/1836888.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1836888.jpg  
  inflating: Food-101-Annotated/pizza/2760984.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._2760984.jpg  
  inflating: Food-101-Annotated/pizza/1600705.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1600705.jpg  
  inflating: Food-101-Annotated/pizza/896448.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._896448.jpg  
  inflating: Food-101-Annotated/pizza/1183278.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1183278.jpg  
  inflating: Food-101-Annotated/pizza/56449.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._56449.jpg  
  inflating: Food-101-Annotated/pizza/300157.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._300157.jpg  
  inflating: Food-101-Annotated/pizza/741883.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._741883.jpg  
  inflating: Food-101-Annotated/pizza/1084888.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1084888.jpg  
  inflating: Food-101-Annotated/pizza/2003290.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._2003290.jpg  
  inflating: Food-101-Annotated/pizza/228778.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._228778.jpg  
  inflating: Food-101-Annotated/pizza/702165.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._702165.jpg  
  inflating: Food-101-Annotated/pizza/723745.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._723745.jpg  
  inflating: Food-101-Annotated/pizza/1991586.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1991586.jpg  
  inflating: Food-101-Annotated/pizza/89197.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._89197.jpg  
  inflating: Food-101-Annotated/pizza/1065078.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1065078.jpg  
  inflating: Food-101-Annotated/pizza/105910.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._105910.jpg  
  inflating: Food-101-Annotated/pizza/3264148.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3264148.jpg  
  inflating: Food-101-Annotated/pizza/3337370.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3337370.jpg  
  inflating: Food-101-Annotated/pizza/1899785.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1899785.jpg  
  inflating: Food-101-Annotated/pizza/93961.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._93961.jpg  
  inflating: Food-101-Annotated/pizza/3333459.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3333459.jpg  
  inflating: Food-101-Annotated/pizza/53217.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._53217.jpg  
  inflating: Food-101-Annotated/pizza/1011404.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1011404.jpg  
  inflating: Food-101-Annotated/pizza/1137400.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1137400.jpg  
  inflating: Food-101-Annotated/pizza/1915343.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1915343.jpg  
  inflating: Food-101-Annotated/pizza/2478048.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._2478048.jpg  
  inflating: Food-101-Annotated/pizza/141507.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._141507.jpg  
  inflating: Food-101-Annotated/nachos/3122653.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3122653.jpg  
  inflating: Food-101-Annotated/nachos/612532.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._612532.jpg  
  inflating: Food-101-Annotated/nachos/99076.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._99076.jpg  
  inflating: Food-101-Annotated/nachos/175246.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._175246.jpg  
  inflating: Food-101-Annotated/nachos/549614.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._549614.jpg  
  inflating: Food-101-Annotated/nachos/683991.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._683991.jpg  
  inflating: Food-101-Annotated/nachos/144852.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._144852.jpg  
  inflating: Food-101-Annotated/nachos/1754283.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1754283.jpg  
  inflating: Food-101-Annotated/nachos/1970937.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1970937.jpg  
  inflating: Food-101-Annotated/nachos/1232631.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1232631.jpg  
  inflating: Food-101-Annotated/nachos/900389.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._900389.jpg  
  inflating: Food-101-Annotated/nachos/54529.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._54529.jpg  
  inflating: Food-101-Annotated/nachos/699010.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._699010.jpg  
  inflating: Food-101-Annotated/nachos/2434560.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2434560.jpg  
  inflating: Food-101-Annotated/nachos/3778410.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3778410.jpg  
  inflating: Food-101-Annotated/nachos/239290.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._239290.jpg  
  inflating: Food-101-Annotated/nachos/774749.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._774749.jpg  
  inflating: Food-101-Annotated/nachos/1622013.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1622013.jpg  
  inflating: Food-101-Annotated/nachos/1577096.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1577096.jpg  
  inflating: Food-101-Annotated/nachos/3259984.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3259984.jpg  
  inflating: Food-101-Annotated/nachos/2715265.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2715265.jpg  
  inflating: Food-101-Annotated/nachos/1068026.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1068026.jpg  
  inflating: Food-101-Annotated/nachos/3714861.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3714861.jpg  
  inflating: Food-101-Annotated/nachos/208464.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._208464.jpg  
  inflating: Food-101-Annotated/nachos/1075843.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1075843.jpg  
  inflating: Food-101-Annotated/nachos/3492539.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3492539.jpg  
  inflating: Food-101-Annotated/nachos/3644462.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3644462.jpg  
  inflating: Food-101-Annotated/nachos/288930.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._288930.jpg  
  inflating: Food-101-Annotated/nachos/1149411.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1149411.jpg  
  inflating: Food-101-Annotated/nachos/1381155.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1381155.jpg  
  inflating: Food-101-Annotated/nachos/3266015.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3266015.jpg  
  inflating: Food-101-Annotated/nachos/3161098.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3161098.jpg  
  inflating: Food-101-Annotated/nachos/54252.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._54252.jpg  
  inflating: Food-101-Annotated/nachos/3817438.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3817438.jpg  
  inflating: Food-101-Annotated/nachos/500252.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._500252.jpg  
  inflating: Food-101-Annotated/nachos/376174.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._376174.jpg  
  inflating: Food-101-Annotated/nachos/3273369.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3273369.jpg  
  inflating: Food-101-Annotated/nachos/2647506.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2647506.jpg  
  inflating: Food-101-Annotated/nachos/3115939.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3115939.jpg  
  inflating: Food-101-Annotated/nachos/932678.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._932678.jpg  
  inflating: Food-101-Annotated/nachos/787394.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._787394.jpg  
  inflating: Food-101-Annotated/nachos/1890869.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1890869.jpg  
  inflating: Food-101-Annotated/nachos/225270.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._225270.jpg  
  inflating: Food-101-Annotated/nachos/2847727.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2847727.jpg  
  inflating: Food-101-Annotated/nachos/450661.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._450661.jpg  
  inflating: Food-101-Annotated/nachos/3471051.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3471051.jpg  
  inflating: Food-101-Annotated/nachos/209662.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._209662.jpg  
  inflating: Food-101-Annotated/nachos/462516.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._462516.jpg  
  inflating: Food-101-Annotated/nachos/2704460.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2704460.jpg  
  inflating: Food-101-Annotated/nachos/313978.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._313978.jpg  
  inflating: Food-101-Annotated/nachos/2616112.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2616112.jpg  
  inflating: Food-101-Annotated/french_fries/2907806.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2907806.jpg  
  inflating: Food-101-Annotated/french_fries/2680169.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2680169.jpg  
  inflating: Food-101-Annotated/french_fries/494329.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._494329.jpg  
  inflating: Food-101-Annotated/french_fries/2056007.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2056007.jpg  
  inflating: Food-101-Annotated/french_fries/1767923.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1767923.jpg  
  inflating: Food-101-Annotated/french_fries/2550720.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2550720.jpg  
  inflating: Food-101-Annotated/french_fries/1384733.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1384733.jpg  
  inflating: Food-101-Annotated/french_fries/1531073.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1531073.jpg  
  inflating: Food-101-Annotated/french_fries/109401.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._109401.jpg  
  inflating: Food-101-Annotated/french_fries/2677445.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2677445.jpg  
  inflating: Food-101-Annotated/french_fries/3377570.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3377570.jpg  
  inflating: Food-101-Annotated/french_fries/348356.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._348356.jpg  
  inflating: Food-101-Annotated/french_fries/3049746.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3049746.jpg  
  inflating: Food-101-Annotated/french_fries/3345305.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3345305.jpg  
  inflating: Food-101-Annotated/french_fries/370151.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._370151.jpg  
  inflating: Food-101-Annotated/french_fries/338101.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._338101.jpg  
  inflating: Food-101-Annotated/french_fries/3843922.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3843922.jpg  
  inflating: Food-101-Annotated/french_fries/1199754.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1199754.jpg  
  inflating: Food-101-Annotated/french_fries/2315325.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2315325.jpg  
  inflating: Food-101-Annotated/french_fries/2696740.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2696740.jpg  
  inflating: Food-101-Annotated/french_fries/1703753.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1703753.jpg  
  inflating: Food-101-Annotated/french_fries/828160.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._828160.jpg  
  inflating: Food-101-Annotated/french_fries/2001882.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2001882.jpg  
  inflating: Food-101-Annotated/french_fries/2015613.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2015613.jpg  
  inflating: Food-101-Annotated/french_fries/3659782.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3659782.jpg  
  inflating: Food-101-Annotated/french_fries/2661646.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2661646.jpg  
  inflating: Food-101-Annotated/french_fries/1937830.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1937830.jpg  
  inflating: Food-101-Annotated/french_fries/3684873.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3684873.jpg  
  inflating: Food-101-Annotated/french_fries/2298765.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2298765.jpg  
  inflating: Food-101-Annotated/french_fries/963995.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._963995.jpg  
  inflating: Food-101-Annotated/french_fries/2331134.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2331134.jpg  
  inflating: Food-101-Annotated/french_fries/2029107.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2029107.jpg  
  inflating: Food-101-Annotated/french_fries/2371507.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2371507.jpg  
  inflating: Food-101-Annotated/french_fries/904510.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._904510.jpg  
  inflating: Food-101-Annotated/french_fries/1080215.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1080215.jpg  
  inflating: Food-101-Annotated/french_fries/3167615.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3167615.jpg  
  inflating: Food-101-Annotated/french_fries/607021.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._607021.jpg  
  inflating: Food-101-Annotated/french_fries/177372.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._177372.jpg  
  inflating: Food-101-Annotated/french_fries/1987068.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1987068.jpg  
  inflating: Food-101-Annotated/french_fries/2958833.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2958833.jpg  
  inflating: Food-101-Annotated/french_fries/1740113.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1740113.jpg  
  inflating: Food-101-Annotated/french_fries/2314805.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2314805.jpg  
  inflating: Food-101-Annotated/french_fries/2195192.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2195192.jpg  
  inflating: Food-101-Annotated/french_fries/1692647.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1692647.jpg  
  inflating: Food-101-Annotated/french_fries/2004116.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2004116.jpg  
  inflating: Food-101-Annotated/french_fries/584234.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._584234.jpg  
  inflating: Food-101-Annotated/french_fries/374001.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._374001.jpg  
  inflating: Food-101-Annotated/french_fries/531883.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._531883.jpg  
  inflating: Food-101-Annotated/french_fries/1694219.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1694219.jpg  
  inflating: Food-101-Annotated/french_fries/2077845.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2077845.jpg  
  inflating: Food-101-Annotated/french_fries/2661893.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2661893.jpg  
  inflating: Food-101-Annotated/french_fries/143158.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._143158.jpg  
  inflating: Food-101-Annotated/french_fries/2335210.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2335210.jpg  
  inflating: Food-101-Annotated/french_fries/2472499.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2472499.jpg  
  inflating: Food-101-Annotated/french_fries/3405511.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3405511.jpg  
  inflating: Food-101-Annotated/french_fries/1552191.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1552191.jpg  
  inflating: Food-101-Annotated/french_fries/566728.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._566728.jpg  
  inflating: Food-101-Annotated/french_fries/1700344.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1700344.jpg  
  inflating: Food-101-Annotated/french_fries/2229500.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2229500.jpg  
  inflating: Food-101-Annotated/french_fries/375233.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._375233.jpg  
  inflating: Food-101-Annotated/french_fries/2275484.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2275484.jpg  
  inflating: Food-101-Annotated/french_fries/2008616.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2008616.jpg  
  inflating: Food-101-Annotated/french_fries/3223529.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3223529.jpg  
  inflating: Food-101-Annotated/french_fries/2699989.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2699989.jpg  
  inflating: Food-101-Annotated/french_fries/1099260.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1099260.jpg  
  inflating: Food-101-Annotated/french_fries/353437.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._353437.jpg  
  inflating: Food-101-Annotated/french_fries/2001959.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2001959.jpg  
  inflating: Food-101-Annotated/french_fries/1369116.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1369116.jpg  
  inflating: Food-101-Annotated/french_fries/1165966.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1165966.jpg  
  inflating: Food-101-Annotated/french_fries/622359.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._622359.jpg  
  inflating: Food-101-Annotated/french_fries/2371960.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2371960.jpg  
  inflating: Food-101-Annotated/french_fries/1370900.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1370900.jpg  
  inflating: Food-101-Annotated/french_fries/1150103.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1150103.jpg  
  inflating: Food-101-Annotated/french_fries/557390.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._557390.jpg  
  inflating: Food-101-Annotated/french_fries/3711232.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3711232.jpg  
  inflating: Food-101-Annotated/french_fries/2856271.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2856271.jpg  
  inflating: Food-101-Annotated/french_fries/1438129.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1438129.jpg  
  inflating: Food-101-Annotated/french_fries/3919465.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3919465.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/85514.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._85514.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/621259.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._621259.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1921412.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1921412.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1176281.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1176281.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3465698.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3465698.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2005850.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2005850.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2311283.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2311283.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/390886.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._390886.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/649653.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._649653.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2862530.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2862530.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/596317.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._596317.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1961230.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1961230.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2752957.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2752957.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3323080.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3323080.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/995145.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._995145.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/510048.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._510048.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/660729.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._660729.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/598638.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._598638.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2985290.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2985290.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3384471.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3384471.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1971651.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1971651.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1272987.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1272987.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1068026.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1068026.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2139248.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2139248.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1615718.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1615718.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1995311.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1995311.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2289445.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2289445.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3518829.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3518829.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1954378.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1954378.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/518018.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._518018.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/478897.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._478897.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1371104.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1371104.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1629364.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1629364.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3758284.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3758284.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1262551.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1262551.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1698568.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1698568.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1839769.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1839769.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/366955.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._366955.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/517105.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._517105.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/612548.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._612548.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/669677.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._669677.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2948329.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2948329.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/396427.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._396427.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/519403.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._519403.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3838718.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3838718.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1442308.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1442308.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/238730.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._238730.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/128941.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._128941.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1910824.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1910824.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3380318.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3380318.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1303736.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1303736.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/243829.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._243829.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3693594.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3693594.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3228081.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3228081.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2302.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2302.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1497664.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1497664.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/195766.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._195766.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3478622.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3478622.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2998894.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2998894.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2778821.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2778821.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/663294.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._663294.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1526132.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1526132.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/104322.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._104322.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/917040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._917040.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3803813.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3803813.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1189287.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1189287.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1449447.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1449447.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/15074.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._15074.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1383505.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1383505.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2703502.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2703502.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/331119.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._331119.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1982708.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1982708.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1453309.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1453309.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3633981.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3633981.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2802920.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2802920.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/924149.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._924149.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3011172.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3011172.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2189028.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2189028.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3017105.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3017105.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2373677.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2373677.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2408934.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2408934.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2040239.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2040239.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3442040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3442040.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3921972.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3921972.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1177448.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1177448.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2117161.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2117161.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2072483.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2072483.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1191466.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1191466.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1881590.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1881590.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1239544.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1239544.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/6119.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._6119.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3397617.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3397617.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2605136.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2605136.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1170314.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1170314.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1083263.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1083263.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/918899.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._918899.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1917898.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1917898.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1416302.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1416302.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2095432.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2095432.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3436247.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3436247.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/862501.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._862501.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1526228.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1526228.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3604106.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3604106.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2129469.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2129469.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/674960.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._674960.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/672929.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._672929.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/704897.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._704897.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/942933.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._942933.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1939527.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1939527.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/328693.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._328693.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1249361.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1249361.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1750149.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1750149.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/68911.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._68911.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1539989.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1539989.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1460553.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1460553.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1751695.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1751695.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2855237.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2855237.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1444587.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1444587.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3470729.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3470729.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/261040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._261040.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/62383.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._62383.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2348924.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2348924.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3882056.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3882056.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1499692.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1499692.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/406322.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._406322.jpg  
In [ ]:
# Correct data directory path
data_dir = 'Food-101-Annotated/'

# Read the annotation file
annotations_df = pd.read_csv('Food-101-Annotated/annotation_refined.csv')

classes = annotations_df['class_name'].unique()

print("Available food classes:")
classes.tolist()
Available food classes:
Out[ ]:
['french_fries',
 'nachos',
 'chocolate_cake',
 'samosa',
 'ice_cream',
 'strawberry_shortcake',
 'pizza',
 'tacos',
 'waffle',
 'onion_ring']
In [ ]:
# Display first few rows of annotations dataframe
print("\nSample of Annotations Data:")
annotations_df.head()
Sample of Annotations Data:
Out[ ]:
image class_name x_center y_center width height
0 1199754.jpg french_fries 0.509375 0.522656 0.720313 0.771875
1 1232631.jpg nachos 0.178125 0.717969 0.351562 0.439063
2 1232631.jpg nachos 0.522656 0.511719 0.932813 0.954688
3 2616112.jpg nachos 0.165625 0.526563 0.214844 0.465625
4 2616112.jpg nachos 0.394531 0.482812 0.171875 0.379688
In [ ]:
# Display summary statistics of annotations
print("\nAnnotations DataFrame Info:")
annotations_df.info()
Annotations DataFrame Info:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 1090 entries, 0 to 1089
Data columns (total 6 columns):
 #   Column      Non-Null Count  Dtype  
---  ------      --------------  -----  
 0   image       1090 non-null   object 
 1   class_name  1090 non-null   object 
 2   x_center    1090 non-null   float64
 3   y_center    1090 non-null   float64
 4   width       1090 non-null   float64
 5   height      1090 non-null   float64
dtypes: float64(4), object(2)
memory usage: 51.2+ KB
In [ ]:
# Display value counts of classes
print("\nClass Distribution:")
annotations_df['class_name'].value_counts()
Class Distribution:
Out[ ]:
count
class_name
samosa 193
onion_ring 176
nachos 143
ice_cream 125
tacos 117
french_fries 81
pizza 68
strawberry_shortcake 67
waffle 65
chocolate_cake 55

In [ ]:
# Display value counts of classes
print("\nClass Distribution:")
annotations_df.describe()
Class Distribution:
Out[ ]:
x_center y_center width height
count 1090.000000 1090.000000 1090.000000 1090.000000
mean 0.503608 0.485872 0.533300 0.502740
std 0.174767 0.152479 0.257276 0.234620
min 0.067187 0.102344 0.001563 0.002344
25% 0.397656 0.392383 0.327539 0.314844
50% 0.503125 0.492188 0.487109 0.463672
75% 0.603125 0.572656 0.753906 0.683594
max 0.953125 0.920312 1.000000 1.000000

Visualizing Sample Images with Bounding Boxes for Each Food Class¶

This section displays a visual grid of sample images from the Food-101 dataset, annotated with bounding boxes for each food class. The goal is to provide a clear, visual understanding of how food items are localized within images and to verify the accuracy of the annotations.

In [ ]:
import matplotlib.pyplot as plt
import random

for i, class_name in enumerate(classes, 1):
    print(f"{i}. {class_name}")

# Process each class separately with 3 images in a 1x3 grid
for food_class in classes:
    print(f"\nProcessing class: {food_class}")

    class_images = annotations_df[annotations_df['class_name'] == food_class]['image'].unique()
    selected_images = random.sample(list(class_images), min(3, len(class_images)))

    fig, axes = plt.subplots(1, 3, figsize=(9, 3))  # Adjust width & height as needed
    axes = axes.ravel()

    for img_idx, image_file in enumerate(selected_images):
        draw_yolo_bboxes_from_csv(data_dir, image_file, annotations_df, axes[img_idx], food_class)

    # Title and spacing adjustments
    fig.suptitle(f"{food_class} Samples with Bounding Boxes", fontsize=14)
    plt.tight_layout(pad=2.0)  # Adjust pad to control spacing
    plt.subplots_adjust(top=0.85)  # Make space for suptitle
    plt.show()
1. french_fries
2. nachos
3. chocolate_cake
4. samosa
5. ice_cream
6. strawberry_shortcake
7. pizza
8. tacos
9. waffle
10. onion_ring

Processing class: french_fries
No description has been provided for this image
Processing class: nachos
No description has been provided for this image
Processing class: chocolate_cake
No description has been provided for this image
Processing class: samosa
No description has been provided for this image
Processing class: ice_cream
No description has been provided for this image
Processing class: strawberry_shortcake
No description has been provided for this image
Processing class: pizza
No description has been provided for this image
Processing class: tacos
No description has been provided for this image
Processing class: waffle
No description has been provided for this image
Processing class: onion_ring
No description has been provided for this image

Model Building¶

Performance Metrics: Metrics like accuracy, precision, recall, and F1-score should be evaluated. These metrics help assess the model's ability to distinguish between different food classes, especially when some are more challenging to classify.

Preparing Data Set (Annotated) For Model¶

We have annotated the datset and created a seperate annotation_csv file which contains imagename,classname and xcenter,ycenter,width,height (yolo format) all normalised 0to1.We will be using the same dataset for the model data preprartion and training

In [ ]:
# base path of annotated images
base_path='Food-101-Annotated/'
In [ ]:
# load image metadata from folder for training and testing
metadata_annotated = load_metadata(base_path)
annotation_df_model=pd.read_csv(f"{base_path}/annotation_refined.csv")

Train Test Split With Image Generator¶

In [ ]:
# Take first image only as there might have duplicate entryfor same image as same image mutiple instances of same food item
classification_df = annotation_df_model.groupby('image').first().reset_index()
# create a new volumn file name by concating the classname this will help us in using df for image data generator
classification_df['image_name'] = classification_df.apply(lambda row: f"{row['class_name']}/{row['image']}", axis=1)
# train test split with dividing the class in same propertion
train_df, temp_df = train_test_split(
    classification_df,
    test_size=0.2,
    stratify=classification_df['class_name'],  # ensures class distribution is preserved
    random_state=42)
valid_df, test_df = train_test_split(
    temp_df,
    test_size=0.5,
    stratify=temp_df['class_name'],  # ensures class distribution is preserved
    random_state=42)
In [ ]:
print(f"Training Set ->{train_df.shape}",f"Validation Set ->{valid_df.shape}",f"Test Set ->{test_df.shape}")
Training Set ->(447, 7) Validation Set ->(56, 7) Test Set ->(56, 7)
In [ ]:
df_1=classification_df.groupby('class_name').agg({'image':'count'}).reset_index()
df_2=train_df.groupby('class_name').agg({'image':'count'}).reset_index()
# Rename columns for clarity
df_1 = df_1.rename(columns={'image': 'total_count'})
df_2 = df_2.rename(columns={'image': 'train_count'})

# Merge on 'class_name'
result_df = pd.merge(df_1, df_2, on='class_name', how='outer')
result_df
Out[ ]:
class_name total_count train_count
0 chocolate_cake 51 41
1 french_fries 78 62
2 ice_cream 54 43
3 nachos 48 38
4 onion_ring 50 40
5 pizza 58 46
6 samosa 71 57
7 strawberry_shortcake 50 40
8 tacos 52 42
9 waffle 47 38
  • We can see we have 447 for training 56 for testing and 56 will be for valiadation
  • We can see each class is equally distributed 80% of total image set for the class from the aboce dataframe
In [ ]:
# Define Image data generator for train and testvalidation
train_datagen =ImageDataGenerator(
                 horizontal_flip=True,
                 vertical_flip=True,
                 rotation_range=15,
                 width_shift_range=0.1,
                 height_shift_range=0.1,
                 zoom_range=0.2,
                 shear_range=0.1,
                 fill_mode='nearest',
                 rescale=1/255) #rescale to [0-1], add zoom range of 0.2x and horizontal flip
test_valid_datagen = ImageDataGenerator(rescale=1./255)


# Create training image gen
train_gen = train_datagen.flow_from_dataframe(
    train_df,
    directory=base_path,  # base path
    x_col='image_name',
    y_col='class_name',
    target_size=(128, 128),
    class_mode='categorical',
    batch_size=32,
    shuffle=True
)

# Create test image gen
test_gen = test_valid_datagen.flow_from_dataframe(
    test_df,
    directory=base_path,
    x_col='image_name',
    y_col='class_name',
    target_size=(128, 128),
    class_mode='categorical',
    batch_size=32,
    shuffle=False
)
# Create valid image gen

valid_gen = test_valid_datagen.flow_from_dataframe(
    valid_df,
    directory=base_path,
    x_col='image_name',
    y_col='class_name',
    target_size=(128, 128),
    class_mode='categorical',
    batch_size=32,
    shuffle=False
)
Found 446 validated image filenames belonging to 10 classes.
Found 56 validated image filenames belonging to 10 classes.
Found 56 validated image filenames belonging to 10 classes.
/usr/local/lib/python3.11/dist-packages/keras/src/legacy/preprocessing/image.py:920: UserWarning: Found 1 invalid image filename(s) in x_col="image_name". These filename(s) will be ignored.
  warnings.warn(
In [ ]:
print(train_gen.class_indices)
print(valid_gen.class_indices)
print(test_gen.class_indices)
{'chocolate_cake': 0, 'french_fries': 1, 'ice_cream': 2, 'nachos': 3, 'onion_ring': 4, 'pizza': 5, 'samosa': 6, 'strawberry_shortcake': 7, 'tacos': 8, 'waffle': 9}
{'chocolate_cake': 0, 'french_fries': 1, 'ice_cream': 2, 'nachos': 3, 'onion_ring': 4, 'pizza': 5, 'samosa': 6, 'strawberry_shortcake': 7, 'tacos': 8, 'waffle': 9}
{'chocolate_cake': 0, 'french_fries': 1, 'ice_cream': 2, 'nachos': 3, 'onion_ring': 4, 'pizza': 5, 'samosa': 6, 'strawberry_shortcake': 7, 'tacos': 8, 'waffle': 9}
In [ ]:
from collections import Counter

# Count how many instances per class
class_counts = Counter(test_gen.classes)

# Map class indices back to names
index_to_class = {v: k for k, v in test_gen.class_indices.items()}
class_distribution = {index_to_class[i]: count for i, count in class_counts.items()}

# Print result
for class_name, count in class_distribution.items():
    print(f"{class_name}: {count}")
ice_cream: 6
french_fries: 8
chocolate_cake: 5
onion_ring: 5
strawberry_shortcake: 5
samosa: 7
tacos: 5
nachos: 5
pizza: 6
waffle: 4

Observations:¶

We can see each classes have some images in test set

Train Test Split Normal (without image generator)¶

In [ ]:
images = []
labels = []
for i in metadata_annotated:
  img = cv2.imread(i.image_path())
  if img is None:
    continue
  img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
  img_resized = cv2.resize(img_rgb, (128, 128))
  images.append(img_resized/255.0)
  labels.append(i.name)
In [ ]:
# Convert lists to arrays
X = np.array(images)
y = np.array(labels)

# Encode string labels to integers
label_encoder = LabelEncoder()
y_encoded = label_encoder.fit_transform(y)
y_categorical = to_categorical(y_encoded)  # one-hot encoding

# Train-test split
X_train, X_temp, y_train, y_temp = train_test_split(X, y_categorical, test_size=0.2, random_state=42, stratify=y_categorical)
X_valid, X_test, y_valid, y_test = train_test_split(X_temp, y_temp, test_size=0.5, random_state=42, stratify=y_temp)

# Shapes
print(f"Train: {X_train.shape}, {y_train.shape}")
print(f"Valid: {X_valid.shape}, {y_valid.shape}")
print(f"Test: {X_test.shape}, {y_test.shape}")
Train: (452, 128, 128, 3), (452, 10)
Valid: (56, 128, 128, 3), (56, 10)
Test: (57, 128, 128, 3), (57, 10)

Model Creation¶

Helper Function¶

In [ ]:
def build_basic_cnn(input_shape, num_classes):
    model = Sequential()

    # First Convolutional Block
    model.add(Conv2D(32, (3, 3), activation='relu', input_shape=input_shape))
    model.add(MaxPooling2D((2, 2)))

    # Second Convolutional Block
    model.add(Conv2D(64, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2)))

    # Third Convolutional Block (Optional, but good for slightly more complexity)
    model.add(Conv2D(128, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2)))

    # Flatten the 3D output to 1D for the Dense layers
    model.add(Flatten())

    # Dense (Fully Connected) Layers
    model.add(Dense(128, activation='relu'))
    model.add(Dropout(0.5)) # Dropout for regularization to prevent overfitting
    model.add(Dense(num_classes, activation='softmax')) # Output layer for classification

    # Compile the model
    model.compile(optimizer=Adam(learning_rate=0.001),
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])
    return model
In [ ]:
def build_basic_cnn_2(input_shape, num_classes, optimizer: Optimizer = Adam(learning_rate=0.001)):
    model = Sequential()

    # First Convolutional Block
    model.add(Conv2D(32, (3, 3), activation='relu', input_shape=input_shape, kernel_initializer='he_normal'))
    model.add(MaxPooling2D((2, 2)))

    # Second Convolutional Block
    model.add(Conv2D(64, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2)))

    # Third Convolutional Block
    model.add(Conv2D(128, (3, 3), activation='relu'))
    model.add(MaxPooling2D((2, 2)))

    # Flatten and Fully Connected Layers
    model.add(Flatten())
    model.add(Dense(128, activation='relu'))
    model.add(Dropout(0.5))
    model.add(Dense(num_classes, activation='softmax'))

    # Compile with the given optimizer
    model.compile(optimizer=optimizer,
                  loss='categorical_crossentropy',
                  metrics=['accuracy'])

    return model
In [ ]:
def get_callbacks(filepath='cnn_model.weights.h5'):
    """
    Returns a tuple of callbacks: ModelCheckpoint, EarlyStopping, and ReduceLROnPlateau.

    Parameters:
    -----------
    filepath : str
        Path to save the model weights.

    Returns:
    --------
    tuple :
        (ModelCheckpoint, EarlyStopping, ReduceLROnPlateau)
    """
    checkpointer = ModelCheckpoint(
        filepath=filepath,
        verbose=1,
        save_best_only=True,
        save_weights_only=True
    )

    earlystopping = EarlyStopping(
        monitor='val_loss',
        min_delta=0.01,
        patience=5,
        mode='auto'
    )

    reduceLR = ReduceLROnPlateau(
        monitor='val_loss',
        factor=0.5,
        patience=10,
        mode='auto'
    )

    return checkpointer, earlystopping, reduceLR
In [ ]:
def plot_model_accuracy(history,model):
    """
    Plots the accuracy and loss trends over epochs for a trained neural network.

    Parameters:
    - history: Keras History object containing training metrics.

    Displays:
    - Subplot 1: Training & Validation Accuracy vs. Epochs
    - Subplot 2: Training & Validation Loss vs. Epochs
    """

    h1 = history.history  # Extract training history

    # Get the final values for display in titles
    final_train_acc = h1['accuracy'][-1]
    final_val_acc = h1['val_accuracy'][-1]
    final_train_loss = h1['loss'][-1]
    final_val_loss = h1['val_loss'][-1]

    plt.figure(figsize=(15, 6))

    # Plot Accuracy
    plt.subplot(1, 2, 1)
    sns.lineplot(y=h1['accuracy'], x=range(len(h1['accuracy'])), label="Training Accuracy", color="green")
    sns.lineplot(y=h1['val_accuracy'], x=range(len(h1['val_accuracy'])), label="Validation Accuracy", color="blue")
    plt.xlabel("Epochs")
    plt.ylabel("Accuracy")
    plt.title(f"Accuracy: Train = {final_train_acc:.4f}, Val = {final_val_acc:.4f}")
    plt.legend()

    # Plot Loss
    plt.subplot(1, 2, 2)
    sns.lineplot(y=h1['loss'], x=range(len(h1['loss'])), label="Training Loss", color="orange")
    sns.lineplot(y=h1['val_loss'], x=range(len(h1['val_loss'])), label="Validation Loss", color="red")
    plt.xlabel("Epochs")
    plt.ylabel("Loss")
    plt.title(f"Loss: Train = {final_train_loss:.4f}, Val = {final_val_loss:.4f}")
    plt.legend()

    plt.show()
In [ ]:
def plot_confusion_matrix(model, test_generator, class_names=None, palette='Set2'):
    """
    Plots a confusion matrix heatmap for a model and a generator-based test dataset.

    Parameters:
    - model: Trained Keras model
    - test_generator: Generator for test data
    - class_names: List of class names (optional)
    - palette: Color palette for heatmap (default: 'Blues')

    Displays:
    - Heatmap of confusion matrix
    """
    # Get predictions and true labels
    y_pred = model.predict(test_generator)
    y_pred_labels = np.argmax(y_pred, axis=1)
    y_true = test_generator.classes  # true labels from generator

    # Confusion matrix
    cm = confusion_matrix(y_true, y_pred_labels)

    if class_names is None and hasattr(test_generator, 'class_indices'):
        class_names = list(test_generator.class_indices.keys())

    plt.figure(figsize=(10, 7))
    sns.heatmap(cm, annot=True, fmt='d', cmap=palette,
                xticklabels=class_names, yticklabels=class_names)
    plt.xlabel('Predicted')
    plt.ylabel('Actual')
    plt.title('Confusion Matrix')
    plt.show()
In [ ]:
def visualize_predictions(model, test_generator, class_names=None, num_images=12):
    """
    Visualize predictions made by a model on a test generator.

    Parameters:
    - model: Trained Keras model.
    - test_generator: ImageDataGenerator with shuffle=False.
    - class_names: List of class names (optional). If None, will use from generator.
    - num_images: Number of images to display.
    """
    # Get batch of images and labels
    images, labels = next(iter(test_generator))
    predictions = model.predict(images)
    pred_labels = np.argmax(predictions, axis=1)
    true_labels = np.argmax(labels, axis=1)

    # Use class names from generator if not provided
    if class_names is None:
        class_names = list(test_generator.class_indices.keys())

    plt.figure(figsize=(15, 10))
    for i in range(min(num_images, len(images))):
        plt.subplot(3, 4, i + 1)
        plt.imshow(images[i])
        plt.axis('off')
        plt.title(f"True: {class_names[true_labels[i]]}\nPred: {class_names[pred_labels[i]]}",
                  color='green' if pred_labels[i] == true_labels[i] else 'red')
    plt.tight_layout()
    plt.show()
In [ ]:
def generate_classification_report(model, test_generator):
    """
    Generate and print a classification report using a Keras model and an image data generator.

    Parameters:
    - model: Trained Keras model
    - test_generator: ImageDataGenerator.flow_from_directory object, must be created with shuffle=False
    """
    # Get true labels
    y_true = test_generator.classes
    class_labels = list(test_generator.class_indices.keys())

    # Predict probabilities
    y_pred_probs = model.predict(test_generator, verbose=1)

    # Convert to predicted class indices
    y_pred = np.argmax(y_pred_probs, axis=1)

    # Print classification report
    report=classification_report(y_true, y_pred, target_names=class_labels)
    report_1=classification_report(y_true, y_pred, target_names=class_labels,output_dict=True)
    report_df = pd.DataFrame(report_1).transpose()
    print(report)
    return report_df

With Default Train Test Set (without Balanced)¶

In [ ]:
# Define checkpint eraly stopping call back
checkpointer, earlystopping, reduceLR=get_callbacks(filepath='model_2.weights.h5')
In [ ]:
# create model
K.clear_session()
cnn_model=build_basic_cnn((128, 128, 3), 10)
In [ ]:
cnn_model.summary()
Model: "sequential"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Layer (type)                    ┃ Output Shape           ┃       Param # ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ conv2d (Conv2D)                 │ (None, 126, 126, 32)   │           896 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ max_pooling2d (MaxPooling2D)    │ (None, 63, 63, 32)     │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv2d_1 (Conv2D)               │ (None, 61, 61, 64)     │        18,496 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ max_pooling2d_1 (MaxPooling2D)  │ (None, 30, 30, 64)     │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ conv2d_2 (Conv2D)               │ (None, 28, 28, 128)    │        73,856 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ max_pooling2d_2 (MaxPooling2D)  │ (None, 14, 14, 128)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ flatten (Flatten)               │ (None, 25088)          │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dense (Dense)                   │ (None, 128)            │     3,211,392 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dropout (Dropout)               │ (None, 128)            │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dense_1 (Dense)                 │ (None, 10)             │         1,290 │
└─────────────────────────────────┴────────────────────────┴───────────────┘
 Total params: 3,305,930 (12.61 MB)
 Trainable params: 3,305,930 (12.61 MB)
 Non-trainable params: 0 (0.00 B)
In [ ]:
cnn_model.compile(
    optimizer='adam',
    loss='categorical_crossentropy',
    metrics=['accuracy']
)
In [ ]:
history = cnn_model.fit(
    X_train,
    y=y_train,
    epochs=50,
    validation_data=(X_valid, y_valid),
    callbacks=[checkpointer, reduceLR, earlystopping]

    )
Epoch 1/50
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 242ms/step - accuracy: 0.1012 - loss: 2.4096
Epoch 1: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 8s 327ms/step - accuracy: 0.1026 - loss: 2.4065 - val_accuracy: 0.2143 - val_loss: 2.2699 - learning_rate: 0.0010
Epoch 2/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 24ms/step - accuracy: 0.1540 - loss: 2.2638
Epoch 2: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 29ms/step - accuracy: 0.1594 - loss: 2.2615 - val_accuracy: 0.1786 - val_loss: 2.1883 - learning_rate: 0.0010
Epoch 3/50
14/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.2272 - loss: 2.1487
Epoch 3: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - accuracy: 0.2259 - loss: 2.1507 - val_accuracy: 0.2143 - val_loss: 2.1650 - learning_rate: 0.0010
Epoch 4/50
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.2670 - loss: 2.0638
Epoch 4: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 23ms/step - accuracy: 0.2657 - loss: 2.0654 - val_accuracy: 0.1964 - val_loss: 2.1575 - learning_rate: 0.0010
Epoch 5/50
14/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.3067 - loss: 2.0220
Epoch 5: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 23ms/step - accuracy: 0.3054 - loss: 2.0214 - val_accuracy: 0.1250 - val_loss: 2.2734 - learning_rate: 0.0010
Epoch 6/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.2502 - loss: 2.0495
Epoch 6: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 25ms/step - accuracy: 0.2597 - loss: 2.0407 - val_accuracy: 0.2500 - val_loss: 2.1587 - learning_rate: 0.0010
Epoch 7/50
14/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.3443 - loss: 1.8332
Epoch 7: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - accuracy: 0.3469 - loss: 1.8325 - val_accuracy: 0.1250 - val_loss: 2.1677 - learning_rate: 0.0010
Epoch 8/50
14/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.4462 - loss: 1.6373
Epoch 8: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 23ms/step - accuracy: 0.4452 - loss: 1.6352 - val_accuracy: 0.2143 - val_loss: 2.2866 - learning_rate: 0.0010
Epoch 9/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.4688 - loss: 1.5378
Epoch 9: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - accuracy: 0.4745 - loss: 1.5261 - val_accuracy: 0.2321 - val_loss: 2.4977 - learning_rate: 0.0010
Epoch 10/50
14/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.5545 - loss: 1.1759
Epoch 10: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 23ms/step - accuracy: 0.5571 - loss: 1.1779 - val_accuracy: 0.1964 - val_loss: 2.5918 - learning_rate: 0.0010
Epoch 11/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.7186 - loss: 0.9608
Epoch 11: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 23ms/step - accuracy: 0.7145 - loss: 0.9667 - val_accuracy: 0.2143 - val_loss: 2.8094 - learning_rate: 0.0010
Epoch 12/50
14/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.7347 - loss: 0.8325
Epoch 12: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - accuracy: 0.7380 - loss: 0.8262 - val_accuracy: 0.2321 - val_loss: 3.2011 - learning_rate: 0.0010
Epoch 13/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - accuracy: 0.7625 - loss: 0.6887
Epoch 13: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 24ms/step - accuracy: 0.7693 - loss: 0.6780 - val_accuracy: 0.2321 - val_loss: 3.4972 - learning_rate: 0.0010
Epoch 14/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 18ms/step - accuracy: 0.8250 - loss: 0.5523
Epoch 14: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 21ms/step - accuracy: 0.8241 - loss: 0.5529 - val_accuracy: 0.1786 - val_loss: 3.5632 - learning_rate: 0.0010
Epoch 15/50
14/15 ━━━━━━━━━━━━━━━━━━━━ 0s 17ms/step - accuracy: 0.8831 - loss: 0.4401
Epoch 15: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - accuracy: 0.8809 - loss: 0.4420 - val_accuracy: 0.1964 - val_loss: 3.9332 - learning_rate: 5.0000e-04
Epoch 16/50
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 16ms/step - accuracy: 0.8856 - loss: 0.3610
Epoch 16: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 20ms/step - accuracy: 0.8853 - loss: 0.3605 - val_accuracy: 0.1964 - val_loss: 4.1603 - learning_rate: 5.0000e-04
Epoch 17/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - accuracy: 0.8698 - loss: 0.3470
Epoch 17: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 26ms/step - accuracy: 0.8738 - loss: 0.3441 - val_accuracy: 0.1786 - val_loss: 3.9422 - learning_rate: 5.0000e-04
Epoch 18/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - accuracy: 0.9403 - loss: 0.2336
Epoch 18: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 48ms/step - accuracy: 0.9386 - loss: 0.2336 - val_accuracy: 0.2143 - val_loss: 4.2191 - learning_rate: 5.0000e-04
Epoch 19/50
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - accuracy: 0.9599 - loss: 0.1735
Epoch 19: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 42ms/step - accuracy: 0.9592 - loss: 0.1745 - val_accuracy: 0.2143 - val_loss: 4.6190 - learning_rate: 5.0000e-04
Epoch 20/50
14/15 ━━━━━━━━━━━━━━━━━━━━ 0s 26ms/step - accuracy: 0.9555 - loss: 0.1569
Epoch 20: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 39ms/step - accuracy: 0.9561 - loss: 0.1578 - val_accuracy: 0.1786 - val_loss: 4.7255 - learning_rate: 5.0000e-04
Epoch 21/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 21ms/step - accuracy: 0.9312 - loss: 0.1951
Epoch 21: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 45ms/step - accuracy: 0.9329 - loss: 0.1964 - val_accuracy: 0.1786 - val_loss: 4.4341 - learning_rate: 5.0000e-04
Epoch 22/50
15/15 ━━━━━━━━━━━━━━━━━━━━ 0s 20ms/step - accuracy: 0.9624 - loss: 0.1533
Epoch 22: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 40ms/step - accuracy: 0.9624 - loss: 0.1536 - val_accuracy: 0.1964 - val_loss: 4.0692 - learning_rate: 5.0000e-04
Epoch 23/50
13/15 ━━━━━━━━━━━━━━━━━━━━ 0s 19ms/step - accuracy: 0.9518 - loss: 0.1254
Epoch 23: val_loss did not improve from 1.63336
15/15 ━━━━━━━━━━━━━━━━━━━━ 1s 37ms/step - accuracy: 0.9525 - loss: 0.1302 - val_accuracy: 0.2143 - val_loss: 4.6879 - learning_rate: 5.0000e-04

Model is overfitting

In [ ]:
plot_model_accuracy(history,cnn_model)
No description has been provided for this image

Observation:¶

The training and validation curve is diverging .Not a good model for further analysis

With Image Generator And balanced Train Set (Adam)¶

In [ ]:
# check point and eraly stopping call back
checkpointer, earlystopping, reduceLR=get_callbacks(filepath='model_2.weights.h5')
In [ ]:
# create basic model
K.clear_session()
model_2=build_basic_cnn((128, 128, 3), 10)
/usr/local/lib/python3.11/dist-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.
  super().__init__(activity_regularizer=activity_regularizer, **kwargs)
In [ ]:
# compile model
model_2.compile(
    optimizer='adam',
    loss='categorical_crossentropy',
    metrics=['accuracy']
)
In [ ]:
# Starting training
history = model_2.fit(
    train_gen,
    epochs=50,
    validation_data=valid_gen,
    callbacks=[checkpointer, reduceLR, earlystopping]
    )
/usr/local/lib/python3.11/dist-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:121: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.
  self._warn_if_super_not_called()
Epoch 1/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 478ms/step - accuracy: 0.0865 - loss: 2.3364
Epoch 1: val_loss improved from inf to 2.29801, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 14s 631ms/step - accuracy: 0.0870 - loss: 2.3356 - val_accuracy: 0.1607 - val_loss: 2.2980 - learning_rate: 0.0010
Epoch 2/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.1392 - loss: 2.2951
Epoch 2: val_loss improved from 2.29801 to 2.27082, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 203ms/step - accuracy: 0.1395 - loss: 2.2951 - val_accuracy: 0.1964 - val_loss: 2.2708 - learning_rate: 0.0010
Epoch 3/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 182ms/step - accuracy: 0.1855 - loss: 2.2526
Epoch 3: val_loss improved from 2.27082 to 2.19070, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 204ms/step - accuracy: 0.1848 - loss: 2.2515 - val_accuracy: 0.1786 - val_loss: 2.1907 - learning_rate: 0.0010
Epoch 4/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.1795 - loss: 2.2026
Epoch 4: val_loss improved from 2.19070 to 2.16503, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 214ms/step - accuracy: 0.1802 - loss: 2.2013 - val_accuracy: 0.2143 - val_loss: 2.1650 - learning_rate: 0.0010
Epoch 5/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 253ms/step - accuracy: 0.2301 - loss: 2.1607
Epoch 5: val_loss did not improve from 2.16503
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 266ms/step - accuracy: 0.2295 - loss: 2.1603 - val_accuracy: 0.2143 - val_loss: 2.1890 - learning_rate: 0.0010
Epoch 6/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.2213 - loss: 2.0869
Epoch 6: val_loss did not improve from 2.16503
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 197ms/step - accuracy: 0.2214 - loss: 2.0878 - val_accuracy: 0.1429 - val_loss: 2.3165 - learning_rate: 0.0010
Epoch 7/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 178ms/step - accuracy: 0.1907 - loss: 2.0870
Epoch 7: val_loss improved from 2.16503 to 2.15649, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 199ms/step - accuracy: 0.1923 - loss: 2.0861 - val_accuracy: 0.1964 - val_loss: 2.1565 - learning_rate: 0.0010
Epoch 8/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 180ms/step - accuracy: 0.2282 - loss: 2.0676
Epoch 8: val_loss did not improve from 2.15649
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 193ms/step - accuracy: 0.2305 - loss: 2.0648 - val_accuracy: 0.2321 - val_loss: 2.2249 - learning_rate: 0.0010
Epoch 9/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 259ms/step - accuracy: 0.2470 - loss: 2.0093
Epoch 9: val_loss did not improve from 2.15649
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 278ms/step - accuracy: 0.2472 - loss: 2.0101 - val_accuracy: 0.2321 - val_loss: 2.1629 - learning_rate: 0.0010
Epoch 10/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.2513 - loss: 1.9634
Epoch 10: val_loss improved from 2.15649 to 2.04943, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 203ms/step - accuracy: 0.2524 - loss: 1.9639 - val_accuracy: 0.2857 - val_loss: 2.0494 - learning_rate: 0.0010
Epoch 11/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.3193 - loss: 1.9118
Epoch 11: val_loss did not improve from 2.04943
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 194ms/step - accuracy: 0.3185 - loss: 1.9124 - val_accuracy: 0.2679 - val_loss: 2.0741 - learning_rate: 0.0010
Epoch 12/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 257ms/step - accuracy: 0.3131 - loss: 1.9116
Epoch 12: val_loss did not improve from 2.04943
14/14 ━━━━━━━━━━━━━━━━━━━━ 6s 282ms/step - accuracy: 0.3129 - loss: 1.9139 - val_accuracy: 0.2679 - val_loss: 2.0538 - learning_rate: 0.0010
Epoch 13/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.2928 - loss: 1.9432
Epoch 13: val_loss improved from 2.04943 to 2.03074, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 204ms/step - accuracy: 0.2944 - loss: 1.9411 - val_accuracy: 0.3393 - val_loss: 2.0307 - learning_rate: 0.0010
Epoch 14/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 180ms/step - accuracy: 0.2859 - loss: 1.9070
Epoch 14: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 193ms/step - accuracy: 0.2851 - loss: 1.9068 - val_accuracy: 0.2679 - val_loss: 2.1372 - learning_rate: 0.0010
Epoch 15/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 182ms/step - accuracy: 0.3066 - loss: 1.8571
Epoch 15: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 200ms/step - accuracy: 0.3074 - loss: 1.8564 - val_accuracy: 0.3393 - val_loss: 2.1604 - learning_rate: 0.0010
Epoch 16/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 255ms/step - accuracy: 0.3891 - loss: 1.8271
Epoch 16: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 270ms/step - accuracy: 0.3869 - loss: 1.8288 - val_accuracy: 0.3393 - val_loss: 2.1290 - learning_rate: 0.0010
Epoch 17/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 177ms/step - accuracy: 0.3130 - loss: 1.8523
Epoch 17: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 190ms/step - accuracy: 0.3150 - loss: 1.8505 - val_accuracy: 0.3214 - val_loss: 2.0610 - learning_rate: 0.0010
Epoch 18/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.2994 - loss: 1.8438
Epoch 18: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 196ms/step - accuracy: 0.3002 - loss: 1.8440 - val_accuracy: 0.3214 - val_loss: 2.1416 - learning_rate: 0.0010
Epoch 19/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.3271 - loss: 1.8279
Epoch 19: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 192ms/step - accuracy: 0.3290 - loss: 1.8280 - val_accuracy: 0.3393 - val_loss: 2.0837 - learning_rate: 0.0010
Epoch 20/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 253ms/step - accuracy: 0.3517 - loss: 1.7238
Epoch 20: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 271ms/step - accuracy: 0.3508 - loss: 1.7265 - val_accuracy: 0.3214 - val_loss: 2.1897 - learning_rate: 0.0010
Epoch 21/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 189ms/step - accuracy: 0.3517 - loss: 1.7843
Epoch 21: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 202ms/step - accuracy: 0.3495 - loss: 1.7913 - val_accuracy: 0.3571 - val_loss: 2.0574 - learning_rate: 0.0010
Epoch 22/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 178ms/step - accuracy: 0.3255 - loss: 1.7916
Epoch 22: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 191ms/step - accuracy: 0.3264 - loss: 1.7923 - val_accuracy: 0.2857 - val_loss: 2.0939 - learning_rate: 0.0010
Epoch 23/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.3599 - loss: 1.7747
Epoch 23: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 195ms/step - accuracy: 0.3603 - loss: 1.7728 - val_accuracy: 0.2857 - val_loss: 2.2142 - learning_rate: 0.0010
Epoch 24/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 207ms/step - accuracy: 0.3770 - loss: 1.7190
Epoch 24: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 225ms/step - accuracy: 0.3782 - loss: 1.7195 - val_accuracy: 0.2857 - val_loss: 2.2082 - learning_rate: 5.0000e-04
Epoch 25/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 176ms/step - accuracy: 0.3441 - loss: 1.7958
Epoch 25: val_loss did not improve from 2.03074
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 189ms/step - accuracy: 0.3447 - loss: 1.7916 - val_accuracy: 0.3036 - val_loss: 2.1900 - learning_rate: 5.0000e-04
Epoch 26/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.3958 - loss: 1.6648
Epoch 26: val_loss improved from 2.03074 to 2.00356, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 205ms/step - accuracy: 0.3968 - loss: 1.6628 - val_accuracy: 0.4107 - val_loss: 2.0036 - learning_rate: 5.0000e-04
Epoch 27/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.4179 - loss: 1.5828
Epoch 27: val_loss improved from 2.00356 to 1.97448, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 201ms/step - accuracy: 0.4168 - loss: 1.5840 - val_accuracy: 0.4107 - val_loss: 1.9745 - learning_rate: 5.0000e-04
Epoch 28/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 252ms/step - accuracy: 0.4444 - loss: 1.5592
Epoch 28: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 277ms/step - accuracy: 0.4443 - loss: 1.5590 - val_accuracy: 0.3393 - val_loss: 2.0945 - learning_rate: 5.0000e-04
Epoch 29/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.4195 - loss: 1.6237
Epoch 29: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 196ms/step - accuracy: 0.4193 - loss: 1.6222 - val_accuracy: 0.4286 - val_loss: 1.9803 - learning_rate: 5.0000e-04
Epoch 30/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.4430 - loss: 1.5234
Epoch 30: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 194ms/step - accuracy: 0.4438 - loss: 1.5249 - val_accuracy: 0.2857 - val_loss: 2.1961 - learning_rate: 5.0000e-04
Epoch 31/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.4131 - loss: 1.5838
Epoch 31: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 192ms/step - accuracy: 0.4151 - loss: 1.5815 - val_accuracy: 0.4464 - val_loss: 2.1299 - learning_rate: 5.0000e-04
Epoch 32/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 192ms/step - accuracy: 0.3614 - loss: 1.6509
Epoch 32: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 211ms/step - accuracy: 0.3651 - loss: 1.6480 - val_accuracy: 0.3571 - val_loss: 2.2241 - learning_rate: 5.0000e-04
Epoch 33/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 286ms/step - accuracy: 0.4299 - loss: 1.5490
Epoch 33: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 298ms/step - accuracy: 0.4304 - loss: 1.5490 - val_accuracy: 0.3750 - val_loss: 2.1025 - learning_rate: 5.0000e-04
Epoch 34/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.4411 - loss: 1.5088
Epoch 34: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 193ms/step - accuracy: 0.4412 - loss: 1.5101 - val_accuracy: 0.4107 - val_loss: 2.0748 - learning_rate: 5.0000e-04
Epoch 35/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.4549 - loss: 1.5297
Epoch 35: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 192ms/step - accuracy: 0.4558 - loss: 1.5293 - val_accuracy: 0.4286 - val_loss: 2.0844 - learning_rate: 5.0000e-04
Epoch 36/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 180ms/step - accuracy: 0.4793 - loss: 1.5011
Epoch 36: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 192ms/step - accuracy: 0.4801 - loss: 1.5006 - val_accuracy: 0.3929 - val_loss: 2.1271 - learning_rate: 5.0000e-04
Epoch 37/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 273ms/step - accuracy: 0.5140 - loss: 1.4248
Epoch 37: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 286ms/step - accuracy: 0.5120 - loss: 1.4272 - val_accuracy: 0.4286 - val_loss: 2.0606 - learning_rate: 5.0000e-04
Epoch 38/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.4727 - loss: 1.5180
Epoch 38: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 196ms/step - accuracy: 0.4708 - loss: 1.5183 - val_accuracy: 0.4107 - val_loss: 2.0587 - learning_rate: 2.5000e-04
Epoch 39/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 180ms/step - accuracy: 0.4730 - loss: 1.4134
Epoch 39: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 194ms/step - accuracy: 0.4727 - loss: 1.4160 - val_accuracy: 0.4464 - val_loss: 2.0646 - learning_rate: 2.5000e-04
Epoch 40/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 207ms/step - accuracy: 0.4515 - loss: 1.4501
Epoch 40: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 232ms/step - accuracy: 0.4540 - loss: 1.4467 - val_accuracy: 0.4464 - val_loss: 1.9971 - learning_rate: 2.5000e-04
Epoch 41/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 235ms/step - accuracy: 0.4626 - loss: 1.4628
Epoch 41: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 247ms/step - accuracy: 0.4630 - loss: 1.4632 - val_accuracy: 0.4286 - val_loss: 2.0065 - learning_rate: 2.5000e-04
Epoch 42/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.5062 - loss: 1.3347
Epoch 42: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 197ms/step - accuracy: 0.5049 - loss: 1.3391 - val_accuracy: 0.4643 - val_loss: 2.0041 - learning_rate: 2.5000e-04
Epoch 43/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 178ms/step - accuracy: 0.5274 - loss: 1.3911
Epoch 43: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 190ms/step - accuracy: 0.5242 - loss: 1.3968 - val_accuracy: 0.4107 - val_loss: 2.0694 - learning_rate: 2.5000e-04
Epoch 44/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 233ms/step - accuracy: 0.5570 - loss: 1.3475
Epoch 44: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 251ms/step - accuracy: 0.5554 - loss: 1.3524 - val_accuracy: 0.3750 - val_loss: 2.2388 - learning_rate: 2.5000e-04
Epoch 45/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 211ms/step - accuracy: 0.4696 - loss: 1.4701
Epoch 45: val_loss did not improve from 1.97448
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 223ms/step - accuracy: 0.4713 - loss: 1.4672 - val_accuracy: 0.5000 - val_loss: 2.0221 - learning_rate: 2.5000e-04
Epoch 46/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 182ms/step - accuracy: 0.5258 - loss: 1.3349
Epoch 46: val_loss improved from 1.97448 to 1.97421, saving model to model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 203ms/step - accuracy: 0.5257 - loss: 1.3367 - val_accuracy: 0.5000 - val_loss: 1.9742 - learning_rate: 2.5000e-04
Epoch 47/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.5265 - loss: 1.4327
Epoch 47: val_loss did not improve from 1.97421
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 192ms/step - accuracy: 0.5262 - loss: 1.4298 - val_accuracy: 0.4107 - val_loss: 2.1361 - learning_rate: 2.5000e-04
In [ ]:
plot_model_accuracy(history,model_2)
No description has been provided for this image
  • So much noise in training and validation
  • We can see its going up an down significantly and model training accuracy of 52% tells that model is failing to learn nuancest features
In [ ]:
model_2.evaluate(test_gen)
/usr/local/lib/python3.11/dist-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:121: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.
  self._warn_if_super_not_called()
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 61ms/step - accuracy: 0.5000 - loss: 1.5691
Out[ ]:
[1.6031839847564697, 0.5]

Observations:¶

  • Model failed to generalise as training accuracy is around 52% with validation accuracy is at 41%.
  • Test acccuracy is around 50%
  • We can see both validation and train curve has noises .
In [ ]:
# SHow classfication report
generate_classification_report(model_2, test_gen)
2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 309ms/step
                      precision    recall  f1-score   support

      chocolate_cake       1.00      1.00      1.00         5
        french_fries       0.50      0.62      0.56         8
           ice_cream       0.57      0.67      0.62         6
              nachos       0.33      0.20      0.25         5
          onion_ring       0.20      0.20      0.20         5
               pizza       0.55      1.00      0.71         6
              samosa       0.17      0.14      0.15         7
strawberry_shortcake       1.00      0.40      0.57         5
               tacos       0.50      0.40      0.44         5
              waffle       0.33      0.25      0.29         4

            accuracy                           0.50        56
           macro avg       0.52      0.49      0.48        56
        weighted avg       0.51      0.50      0.48        56

In [ ]:
# Show Confusion matrix
plot_confusion_matrix(model_2,test_gen,list(test_gen.class_indices.keys()))
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 65ms/step
No description has been provided for this image

Observations:¶

  • Overall Test Accuracy: 50%

  • Overall Accuracy is at 52%

  • High Performing Classes: chocolate_cake, pizza, ice_cream show good precision and recall.

  • Poorly Learned Classes: samosa, onion_ring, strawberry_shortcake — either completely misclassified or low recall.

Model With He normal and more layers(Adam)¶

In [ ]:
# check point and eraly stopping call back
checkpointer, earlystopping, reduceLR=get_callbacks(filepath='cnn_model_2.weights.h5')
In [ ]:
# define the model bulding from utility
K.clear_session()
cnn_model_2=build_basic_cnn_2((128, 128, 3), 10)
/usr/local/lib/python3.11/dist-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.
  super().__init__(activity_regularizer=activity_regularizer, **kwargs)
In [ ]:
cnn_model_2.compile(
    optimizer='adam',
    loss='categorical_crossentropy',
    metrics=['accuracy']
)
In [ ]:
history = cnn_model_2.fit(
    train_gen,
    epochs=50,
    validation_data=valid_gen,
    callbacks=[checkpointer, reduceLR, earlystopping]
    )
Epoch 1/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 270ms/step - accuracy: 0.0770 - loss: 2.7664
Epoch 1: val_loss improved from inf to 2.28435, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 409ms/step - accuracy: 0.0777 - loss: 2.7506 - val_accuracy: 0.1250 - val_loss: 2.2843 - learning_rate: 0.0010
Epoch 2/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 339ms/step - accuracy: 0.1141 - loss: 2.2798
Epoch 2: val_loss improved from 2.28435 to 2.22756, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 376ms/step - accuracy: 0.1152 - loss: 2.2794 - val_accuracy: 0.1429 - val_loss: 2.2276 - learning_rate: 0.0010
Epoch 3/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 189ms/step - accuracy: 0.1768 - loss: 2.1937
Epoch 3: val_loss did not improve from 2.22756
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 203ms/step - accuracy: 0.1764 - loss: 2.1945 - val_accuracy: 0.1250 - val_loss: 2.2510 - learning_rate: 0.0010
Epoch 4/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.1337 - loss: 2.2320
Epoch 4: val_loss did not improve from 2.22756
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 197ms/step - accuracy: 0.1354 - loss: 2.2302 - val_accuracy: 0.1786 - val_loss: 2.2319 - learning_rate: 0.0010
Epoch 5/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 198ms/step - accuracy: 0.2185 - loss: 2.1637
Epoch 5: val_loss improved from 2.22756 to 2.16096, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 231ms/step - accuracy: 0.2183 - loss: 2.1633 - val_accuracy: 0.3036 - val_loss: 2.1610 - learning_rate: 0.0010
Epoch 6/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 253ms/step - accuracy: 0.2161 - loss: 2.1454
Epoch 6: val_loss improved from 2.16096 to 2.13033, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 276ms/step - accuracy: 0.2168 - loss: 2.1443 - val_accuracy: 0.3036 - val_loss: 2.1303 - learning_rate: 0.0010
Epoch 7/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 189ms/step - accuracy: 0.2142 - loss: 2.0771
Epoch 7: val_loss improved from 2.13033 to 2.11435, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 212ms/step - accuracy: 0.2141 - loss: 2.0776 - val_accuracy: 0.2679 - val_loss: 2.1143 - learning_rate: 0.0010
Epoch 8/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.2793 - loss: 2.0360
Epoch 8: val_loss did not improve from 2.11435
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 209ms/step - accuracy: 0.2787 - loss: 2.0371 - val_accuracy: 0.2857 - val_loss: 2.1367 - learning_rate: 0.0010
Epoch 9/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 185ms/step - accuracy: 0.2434 - loss: 1.9952
Epoch 9: val_loss improved from 2.11435 to 2.10751, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 224ms/step - accuracy: 0.2421 - loss: 1.9981 - val_accuracy: 0.2679 - val_loss: 2.1075 - learning_rate: 0.0010
Epoch 10/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 188ms/step - accuracy: 0.3152 - loss: 1.9892
Epoch 10: val_loss improved from 2.10751 to 1.98847, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 211ms/step - accuracy: 0.3148 - loss: 1.9867 - val_accuracy: 0.3393 - val_loss: 1.9885 - learning_rate: 0.0010
Epoch 11/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 180ms/step - accuracy: 0.2695 - loss: 1.9874
Epoch 11: val_loss did not improve from 1.98847
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 193ms/step - accuracy: 0.2684 - loss: 1.9891 - val_accuracy: 0.2679 - val_loss: 2.0332 - learning_rate: 0.0010
Epoch 12/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.2844 - loss: 1.9673
Epoch 12: val_loss did not improve from 1.98847
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 195ms/step - accuracy: 0.2842 - loss: 1.9696 - val_accuracy: 0.2679 - val_loss: 1.9988 - learning_rate: 0.0010
Epoch 13/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 250ms/step - accuracy: 0.3083 - loss: 1.8955
Epoch 13: val_loss did not improve from 1.98847
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 275ms/step - accuracy: 0.3059 - loss: 1.8983 - val_accuracy: 0.1964 - val_loss: 2.1030 - learning_rate: 0.0010
Epoch 14/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.3163 - loss: 1.9678
Epoch 14: val_loss improved from 1.98847 to 1.94321, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 209ms/step - accuracy: 0.3154 - loss: 1.9674 - val_accuracy: 0.2857 - val_loss: 1.9432 - learning_rate: 0.0010
Epoch 15/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 178ms/step - accuracy: 0.3153 - loss: 1.8916
Epoch 15: val_loss did not improve from 1.94321
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 191ms/step - accuracy: 0.3153 - loss: 1.8913 - val_accuracy: 0.2857 - val_loss: 1.9540 - learning_rate: 0.0010
Epoch 16/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.3577 - loss: 1.8141
Epoch 16: val_loss did not improve from 1.94321
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 196ms/step - accuracy: 0.3555 - loss: 1.8179 - val_accuracy: 0.3214 - val_loss: 1.9634 - learning_rate: 0.0010
Epoch 17/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 265ms/step - accuracy: 0.3951 - loss: 1.8192
Epoch 17: val_loss did not improve from 1.94321
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 290ms/step - accuracy: 0.3937 - loss: 1.8192 - val_accuracy: 0.2857 - val_loss: 2.0764 - learning_rate: 0.0010
Epoch 18/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.3680 - loss: 1.8687
Epoch 18: val_loss did not improve from 1.94321
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 199ms/step - accuracy: 0.3675 - loss: 1.8666 - val_accuracy: 0.3036 - val_loss: 2.0689 - learning_rate: 0.0010
Epoch 19/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.3942 - loss: 1.7806
Epoch 19: val_loss did not improve from 1.94321
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 200ms/step - accuracy: 0.3942 - loss: 1.7803 - val_accuracy: 0.3750 - val_loss: 1.9793 - learning_rate: 0.0010
Epoch 20/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 250ms/step - accuracy: 0.3576 - loss: 1.7875
Epoch 20: val_loss improved from 1.94321 to 1.91844, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 289ms/step - accuracy: 0.3590 - loss: 1.7869 - val_accuracy: 0.4286 - val_loss: 1.9184 - learning_rate: 0.0010
Epoch 21/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 188ms/step - accuracy: 0.3200 - loss: 1.8562
Epoch 21: val_loss did not improve from 1.91844
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 202ms/step - accuracy: 0.3219 - loss: 1.8527 - val_accuracy: 0.2857 - val_loss: 1.9747 - learning_rate: 0.0010
Epoch 22/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.3887 - loss: 1.7691
Epoch 22: val_loss did not improve from 1.91844
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 199ms/step - accuracy: 0.3890 - loss: 1.7693 - val_accuracy: 0.3571 - val_loss: 1.9332 - learning_rate: 0.0010
Epoch 23/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.3879 - loss: 1.7563
Epoch 23: val_loss did not improve from 1.91844
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 196ms/step - accuracy: 0.3876 - loss: 1.7544 - val_accuracy: 0.3393 - val_loss: 2.0281 - learning_rate: 0.0010
Epoch 24/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 271ms/step - accuracy: 0.4219 - loss: 1.6812
Epoch 24: val_loss improved from 1.91844 to 1.86413, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 305ms/step - accuracy: 0.4210 - loss: 1.6805 - val_accuracy: 0.3393 - val_loss: 1.8641 - learning_rate: 0.0010
Epoch 25/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 188ms/step - accuracy: 0.4650 - loss: 1.5726
Epoch 25: val_loss improved from 1.86413 to 1.78121, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 212ms/step - accuracy: 0.4637 - loss: 1.5757 - val_accuracy: 0.4286 - val_loss: 1.7812 - learning_rate: 0.0010
Epoch 26/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 187ms/step - accuracy: 0.4326 - loss: 1.6128
Epoch 26: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 212ms/step - accuracy: 0.4308 - loss: 1.6148 - val_accuracy: 0.3036 - val_loss: 1.8514 - learning_rate: 0.0010
Epoch 27/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 185ms/step - accuracy: 0.4305 - loss: 1.6536
Epoch 27: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 199ms/step - accuracy: 0.4294 - loss: 1.6554 - val_accuracy: 0.3393 - val_loss: 1.9455 - learning_rate: 0.0010
Epoch 28/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 290ms/step - accuracy: 0.4085 - loss: 1.6231
Epoch 28: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 315ms/step - accuracy: 0.4080 - loss: 1.6241 - val_accuracy: 0.4107 - val_loss: 1.9274 - learning_rate: 0.0010
Epoch 29/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.4514 - loss: 1.6446
Epoch 29: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 198ms/step - accuracy: 0.4500 - loss: 1.6437 - val_accuracy: 0.3929 - val_loss: 1.8457 - learning_rate: 0.0010
Epoch 30/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.4422 - loss: 1.5868
Epoch 30: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 197ms/step - accuracy: 0.4417 - loss: 1.5883 - val_accuracy: 0.3393 - val_loss: 1.9285 - learning_rate: 0.0010
Epoch 31/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.5040 - loss: 1.4677
Epoch 31: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 209ms/step - accuracy: 0.5028 - loss: 1.4695 - val_accuracy: 0.2857 - val_loss: 2.1038 - learning_rate: 0.0010
Epoch 32/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 258ms/step - accuracy: 0.4455 - loss: 1.5679
Epoch 32: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 283ms/step - accuracy: 0.4455 - loss: 1.5693 - val_accuracy: 0.3214 - val_loss: 1.8913 - learning_rate: 0.0010
Epoch 33/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.5022 - loss: 1.5076
Epoch 33: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 194ms/step - accuracy: 0.5003 - loss: 1.5099 - val_accuracy: 0.3750 - val_loss: 1.8602 - learning_rate: 0.0010
Epoch 34/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 185ms/step - accuracy: 0.4211 - loss: 1.6381
Epoch 34: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 198ms/step - accuracy: 0.4225 - loss: 1.6330 - val_accuracy: 0.3214 - val_loss: 1.8660 - learning_rate: 0.0010
Epoch 35/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.4825 - loss: 1.5003
Epoch 35: val_loss did not improve from 1.78121
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 201ms/step - accuracy: 0.4832 - loss: 1.4985 - val_accuracy: 0.3750 - val_loss: 1.9433 - learning_rate: 0.0010
Epoch 36/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 279ms/step - accuracy: 0.5250 - loss: 1.4188
Epoch 36: val_loss improved from 1.78121 to 1.75832, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 315ms/step - accuracy: 0.5235 - loss: 1.4210 - val_accuracy: 0.4464 - val_loss: 1.7583 - learning_rate: 5.0000e-04
Epoch 37/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.4737 - loss: 1.5109
Epoch 37: val_loss did not improve from 1.75832
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 195ms/step - accuracy: 0.4747 - loss: 1.5069 - val_accuracy: 0.4286 - val_loss: 1.7786 - learning_rate: 5.0000e-04
Epoch 38/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.4998 - loss: 1.3879
Epoch 38: val_loss did not improve from 1.75832
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 196ms/step - accuracy: 0.4995 - loss: 1.3885 - val_accuracy: 0.4821 - val_loss: 1.7657 - learning_rate: 5.0000e-04
Epoch 39/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 203ms/step - accuracy: 0.5556 - loss: 1.3541
Epoch 39: val_loss did not improve from 1.75832
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 222ms/step - accuracy: 0.5546 - loss: 1.3556 - val_accuracy: 0.3571 - val_loss: 1.7976 - learning_rate: 5.0000e-04
Epoch 40/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.4894 - loss: 1.3317
Epoch 40: val_loss did not improve from 1.75832
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 199ms/step - accuracy: 0.4901 - loss: 1.3336 - val_accuracy: 0.3929 - val_loss: 1.9269 - learning_rate: 5.0000e-04
Epoch 41/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.4893 - loss: 1.3505
Epoch 41: val_loss did not improve from 1.75832
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 197ms/step - accuracy: 0.4893 - loss: 1.3527 - val_accuracy: 0.4821 - val_loss: 1.8018 - learning_rate: 5.0000e-04
Epoch 42/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 189ms/step - accuracy: 0.5180 - loss: 1.2948
Epoch 42: val_loss improved from 1.75832 to 1.71094, saving model to cnn_model_2.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 212ms/step - accuracy: 0.5181 - loss: 1.2961 - val_accuracy: 0.4286 - val_loss: 1.7109 - learning_rate: 5.0000e-04
Epoch 43/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 218ms/step - accuracy: 0.5272 - loss: 1.3044
Epoch 43: val_loss did not improve from 1.71094
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 231ms/step - accuracy: 0.5264 - loss: 1.3064 - val_accuracy: 0.3750 - val_loss: 1.8483 - learning_rate: 5.0000e-04
Epoch 44/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 190ms/step - accuracy: 0.5827 - loss: 1.2260
Epoch 44: val_loss did not improve from 1.71094
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 204ms/step - accuracy: 0.5794 - loss: 1.2326 - val_accuracy: 0.4107 - val_loss: 1.7893 - learning_rate: 5.0000e-04
Epoch 45/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.5075 - loss: 1.3605
Epoch 45: val_loss did not improve from 1.71094
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 197ms/step - accuracy: 0.5098 - loss: 1.3555 - val_accuracy: 0.4464 - val_loss: 1.7259 - learning_rate: 5.0000e-04
Epoch 46/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 196ms/step - accuracy: 0.5507 - loss: 1.2950
Epoch 46: val_loss did not improve from 1.71094
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 214ms/step - accuracy: 0.5499 - loss: 1.2937 - val_accuracy: 0.4821 - val_loss: 1.9161 - learning_rate: 5.0000e-04
Epoch 47/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 260ms/step - accuracy: 0.5112 - loss: 1.3212
Epoch 47: val_loss did not improve from 1.71094
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 272ms/step - accuracy: 0.5132 - loss: 1.3201 - val_accuracy: 0.3571 - val_loss: 2.0501 - learning_rate: 5.0000e-04
Epoch 48/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 192ms/step - accuracy: 0.5673 - loss: 1.3060
Epoch 48: val_loss did not improve from 1.71094
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 206ms/step - accuracy: 0.5682 - loss: 1.3028 - val_accuracy: 0.3929 - val_loss: 1.8141 - learning_rate: 5.0000e-04
Epoch 49/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.5567 - loss: 1.2186
Epoch 49: val_loss did not improve from 1.71094
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 196ms/step - accuracy: 0.5567 - loss: 1.2203 - val_accuracy: 0.4464 - val_loss: 1.9469 - learning_rate: 5.0000e-04
Epoch 50/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.5881 - loss: 1.2170
Epoch 50: val_loss did not improve from 1.71094
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 199ms/step - accuracy: 0.5867 - loss: 1.2198 - val_accuracy: 0.3929 - val_loss: 1.9444 - learning_rate: 5.0000e-04
In [ ]:
plot_model_accuracy(history,cnn_model_2)
No description has been provided for this image
In [ ]:
cnn_model_2.evaluate(test_gen)
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 70ms/step - accuracy: 0.4643 - loss: 1.6471
Out[ ]:
[1.7094813585281372, 0.4464285671710968]
In [ ]:
# SHow classfication report
generate_classification_report(cnn_model_2, test_gen)
WARNING:tensorflow:5 out of the last 9 calls to <function TensorFlowTrainer.make_predict_function.<locals>.one_step_on_data_distributed at 0x7b41e1c942c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for  more details.
1/2 ━━━━━━━━━━━━━━━━━━━━ 0s 586ms/step
WARNING:tensorflow:6 out of the last 10 calls to <function TensorFlowTrainer.make_predict_function.<locals>.one_step_on_data_distributed at 0x7b41e1c942c0> triggered tf.function retracing. Tracing is expensive and the excessive number of tracings could be due to (1) creating @tf.function repeatedly in a loop, (2) passing tensors with different shapes, (3) passing Python objects instead of tensors. For (1), please define your @tf.function outside of the loop. For (2), @tf.function has reduce_retracing=True option that can avoid unnecessary retracing. For (3), please refer to https://www.tensorflow.org/guide/function#controlling_retracing and https://www.tensorflow.org/api_docs/python/tf/function for  more details.
2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 366ms/step
                      precision    recall  f1-score   support

      chocolate_cake       0.80      0.80      0.80         5
        french_fries       0.40      0.50      0.44         8
           ice_cream       0.43      0.50      0.46         6
              nachos       0.00      0.00      0.00         5
          onion_ring       0.25      0.20      0.22         5
               pizza       0.55      1.00      0.71         6
              samosa       0.40      0.29      0.33         7
strawberry_shortcake       1.00      0.60      0.75         5
               tacos       0.40      0.40      0.40         5
              waffle       0.00      0.00      0.00         4

            accuracy                           0.45        56
           macro avg       0.42      0.43      0.41        56
        weighted avg       0.43      0.45      0.42        56

In [ ]:
plot_confusion_matrix(cnn_model_2,test_gen,list(test_gen.class_indices.keys()))
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 61ms/step
No description has been provided for this image

Observation¶

  • Test accuracy is at 45%
  • Overall Accuracy: 43% — lesser from previous model which is at 50% .
  • Well-Classified Classes:
    • chocolate_cake, pizza, ice_cream: Good precision and recall.
  • Moderate Performance:
    • french_fries, tacos, onion_ring: Acceptable but need improvement.
  • Poorly Classified Classes:
    • samosa, nachos, waffle, strawberry_shortcake: Low recall or F1-score; waffle has 0% recall.

With he_normal and SGD¶

In [ ]:
checkpointer, earlystopping, reduceLR=get_callbacks(filepath='cnn_model_sgd.weights.h5')
In [ ]:
K.clear_session()
cnn_model_sgd=build_basic_cnn_2((128, 128, 3), 10,SGD(learning_rate=0.001))
/usr/local/lib/python3.11/dist-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.
  super().__init__(activity_regularizer=activity_regularizer, **kwargs)
In [ ]:
cnn_model_sgd.compile(
    optimizer='adam',
    loss='categorical_crossentropy',
    metrics=['accuracy']
)
In [ ]:
history = cnn_model_sgd.fit(
    train_gen,
    epochs=50,
    validation_data=valid_gen,
    callbacks=[checkpointer, reduceLR, earlystopping]
    )
Epoch 1/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 281ms/step - accuracy: 0.1100 - loss: 2.9104
Epoch 1: val_loss improved from inf to 2.28927, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 11s 425ms/step - accuracy: 0.1116 - loss: 2.8890 - val_accuracy: 0.1071 - val_loss: 2.2893 - learning_rate: 0.0010
Epoch 2/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 177ms/step - accuracy: 0.1326 - loss: 2.3050
Epoch 2: val_loss improved from 2.28927 to 2.27802, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 199ms/step - accuracy: 0.1324 - loss: 2.3047 - val_accuracy: 0.1429 - val_loss: 2.2780 - learning_rate: 0.0010
Epoch 3/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.1410 - loss: 2.2769
Epoch 3: val_loss improved from 2.27802 to 2.25607, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 204ms/step - accuracy: 0.1400 - loss: 2.2771 - val_accuracy: 0.2143 - val_loss: 2.2561 - learning_rate: 0.0010
Epoch 4/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.2038 - loss: 2.2205
Epoch 4: val_loss improved from 2.25607 to 2.23521, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 209ms/step - accuracy: 0.2029 - loss: 2.2209 - val_accuracy: 0.2143 - val_loss: 2.2352 - learning_rate: 0.0010
Epoch 5/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 303ms/step - accuracy: 0.1892 - loss: 2.1896
Epoch 5: val_loss improved from 2.23521 to 2.22589, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 345ms/step - accuracy: 0.1885 - loss: 2.1909 - val_accuracy: 0.2321 - val_loss: 2.2259 - learning_rate: 0.0010
Epoch 6/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 204ms/step - accuracy: 0.1889 - loss: 2.1512
Epoch 6: val_loss improved from 2.22589 to 2.16563, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 227ms/step - accuracy: 0.1898 - loss: 2.1511 - val_accuracy: 0.3036 - val_loss: 2.1656 - learning_rate: 0.0010
Epoch 7/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.2242 - loss: 2.1898
Epoch 7: val_loss did not improve from 2.16563
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 208ms/step - accuracy: 0.2231 - loss: 2.1909 - val_accuracy: 0.1607 - val_loss: 2.2050 - learning_rate: 0.0010
Epoch 8/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.2006 - loss: 2.1750
Epoch 8: val_loss improved from 2.16563 to 2.14811, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 207ms/step - accuracy: 0.2020 - loss: 2.1719 - val_accuracy: 0.2500 - val_loss: 2.1481 - learning_rate: 0.0010
Epoch 9/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 206ms/step - accuracy: 0.2559 - loss: 2.1249
Epoch 9: val_loss improved from 2.14811 to 2.12755, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 247ms/step - accuracy: 0.2546 - loss: 2.1248 - val_accuracy: 0.2321 - val_loss: 2.1276 - learning_rate: 0.0010
Epoch 10/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 223ms/step - accuracy: 0.2645 - loss: 2.0155
Epoch 10: val_loss improved from 2.12755 to 2.04542, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 243ms/step - accuracy: 0.2639 - loss: 2.0182 - val_accuracy: 0.2857 - val_loss: 2.0454 - learning_rate: 0.0010
Epoch 11/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 176ms/step - accuracy: 0.2584 - loss: 2.0184
Epoch 11: val_loss did not improve from 2.04542
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 189ms/step - accuracy: 0.2580 - loss: 2.0176 - val_accuracy: 0.2321 - val_loss: 2.0517 - learning_rate: 0.0010
Epoch 12/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 178ms/step - accuracy: 0.2994 - loss: 1.9987
Epoch 12: val_loss did not improve from 2.04542
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 191ms/step - accuracy: 0.2998 - loss: 1.9971 - val_accuracy: 0.2321 - val_loss: 2.1428 - learning_rate: 0.0010
Epoch 13/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.2821 - loss: 2.0251
Epoch 13: val_loss did not improve from 2.04542
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 194ms/step - accuracy: 0.2815 - loss: 2.0239 - val_accuracy: 0.1964 - val_loss: 2.0622 - learning_rate: 0.0010
Epoch 14/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 275ms/step - accuracy: 0.3319 - loss: 1.9566
Epoch 14: val_loss improved from 2.04542 to 1.98582, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 299ms/step - accuracy: 0.3306 - loss: 1.9562 - val_accuracy: 0.3036 - val_loss: 1.9858 - learning_rate: 0.0010
Epoch 15/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.3014 - loss: 1.9413
Epoch 15: val_loss improved from 1.98582 to 1.97371, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 217ms/step - accuracy: 0.3008 - loss: 1.9419 - val_accuracy: 0.3036 - val_loss: 1.9737 - learning_rate: 0.0010
Epoch 16/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 185ms/step - accuracy: 0.3357 - loss: 1.9420
Epoch 16: val_loss did not improve from 1.97371
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 197ms/step - accuracy: 0.3348 - loss: 1.9394 - val_accuracy: 0.3036 - val_loss: 1.9760 - learning_rate: 0.0010
Epoch 17/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 182ms/step - accuracy: 0.3450 - loss: 1.7980
Epoch 17: val_loss improved from 1.97371 to 1.88588, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 205ms/step - accuracy: 0.3449 - loss: 1.8012 - val_accuracy: 0.3929 - val_loss: 1.8859 - learning_rate: 0.0010
Epoch 18/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 257ms/step - accuracy: 0.3129 - loss: 1.8551
Epoch 18: val_loss did not improve from 1.88588
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 282ms/step - accuracy: 0.3146 - loss: 1.8574 - val_accuracy: 0.2321 - val_loss: 1.9886 - learning_rate: 0.0010
Epoch 19/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.4453 - loss: 1.7280
Epoch 19: val_loss did not improve from 1.88588
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 196ms/step - accuracy: 0.4420 - loss: 1.7295 - val_accuracy: 0.2679 - val_loss: 2.0515 - learning_rate: 0.0010
Epoch 20/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.3411 - loss: 1.8667
Epoch 20: val_loss improved from 1.88588 to 1.87394, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 202ms/step - accuracy: 0.3412 - loss: 1.8670 - val_accuracy: 0.3393 - val_loss: 1.8739 - learning_rate: 0.0010
Epoch 21/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 240ms/step - accuracy: 0.3288 - loss: 1.7780
Epoch 21: val_loss did not improve from 1.87394
14/14 ━━━━━━━━━━━━━━━━━━━━ 6s 257ms/step - accuracy: 0.3296 - loss: 1.7795 - val_accuracy: 0.2500 - val_loss: 2.1499 - learning_rate: 0.0010
Epoch 22/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.3726 - loss: 1.7188
Epoch 22: val_loss did not improve from 1.87394
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 197ms/step - accuracy: 0.3727 - loss: 1.7211 - val_accuracy: 0.3036 - val_loss: 2.3458 - learning_rate: 0.0010
Epoch 23/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 180ms/step - accuracy: 0.3565 - loss: 1.7969
Epoch 23: val_loss improved from 1.87394 to 1.87252, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 203ms/step - accuracy: 0.3563 - loss: 1.7967 - val_accuracy: 0.3929 - val_loss: 1.8725 - learning_rate: 0.0010
Epoch 24/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 187ms/step - accuracy: 0.3932 - loss: 1.7071
Epoch 24: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 200ms/step - accuracy: 0.3939 - loss: 1.7046 - val_accuracy: 0.3214 - val_loss: 2.0628 - learning_rate: 0.0010
Epoch 25/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 271ms/step - accuracy: 0.4065 - loss: 1.6843
Epoch 25: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 290ms/step - accuracy: 0.4044 - loss: 1.6871 - val_accuracy: 0.3750 - val_loss: 1.9016 - learning_rate: 0.0010
Epoch 26/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 179ms/step - accuracy: 0.3919 - loss: 1.7254
Epoch 26: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 193ms/step - accuracy: 0.3919 - loss: 1.7255 - val_accuracy: 0.2321 - val_loss: 2.0038 - learning_rate: 0.0010
Epoch 27/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 181ms/step - accuracy: 0.4522 - loss: 1.6339
Epoch 27: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 194ms/step - accuracy: 0.4500 - loss: 1.6347 - val_accuracy: 0.3214 - val_loss: 1.9812 - learning_rate: 0.0010
Epoch 28/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 180ms/step - accuracy: 0.3705 - loss: 1.6781
Epoch 28: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 193ms/step - accuracy: 0.3720 - loss: 1.6766 - val_accuracy: 0.2857 - val_loss: 2.1018 - learning_rate: 0.0010
Epoch 29/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 212ms/step - accuracy: 0.4646 - loss: 1.5609
Epoch 29: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 233ms/step - accuracy: 0.4653 - loss: 1.5616 - val_accuracy: 0.3036 - val_loss: 2.1454 - learning_rate: 0.0010
Epoch 30/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 226ms/step - accuracy: 0.4553 - loss: 1.5652
Epoch 30: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 239ms/step - accuracy: 0.4531 - loss: 1.5665 - val_accuracy: 0.3929 - val_loss: 2.0364 - learning_rate: 0.0010
Epoch 31/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 180ms/step - accuracy: 0.3819 - loss: 1.6918
Epoch 31: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 194ms/step - accuracy: 0.3829 - loss: 1.6930 - val_accuracy: 0.2679 - val_loss: 1.9998 - learning_rate: 0.0010
Epoch 32/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 193ms/step - accuracy: 0.4224 - loss: 1.6644
Epoch 32: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 205ms/step - accuracy: 0.4214 - loss: 1.6657 - val_accuracy: 0.3571 - val_loss: 1.8833 - learning_rate: 0.0010
Epoch 33/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 178ms/step - accuracy: 0.4551 - loss: 1.5783
Epoch 33: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 194ms/step - accuracy: 0.4549 - loss: 1.5794 - val_accuracy: 0.3750 - val_loss: 1.9177 - learning_rate: 0.0010
Epoch 34/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 266ms/step - accuracy: 0.5345 - loss: 1.4077
Epoch 34: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 280ms/step - accuracy: 0.5311 - loss: 1.4153 - val_accuracy: 0.3393 - val_loss: 1.9116 - learning_rate: 5.0000e-04
Epoch 35/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.4230 - loss: 1.5021
Epoch 35: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 197ms/step - accuracy: 0.4247 - loss: 1.5024 - val_accuracy: 0.3393 - val_loss: 2.0294 - learning_rate: 5.0000e-04
Epoch 36/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 177ms/step - accuracy: 0.5043 - loss: 1.4778
Epoch 36: val_loss did not improve from 1.87252
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 190ms/step - accuracy: 0.5029 - loss: 1.4772 - val_accuracy: 0.3214 - val_loss: 2.0046 - learning_rate: 5.0000e-04
Epoch 37/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.4781 - loss: 1.4969
Epoch 37: val_loss improved from 1.87252 to 1.84682, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 209ms/step - accuracy: 0.4785 - loss: 1.4962 - val_accuracy: 0.3929 - val_loss: 1.8468 - learning_rate: 5.0000e-04
Epoch 38/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 257ms/step - accuracy: 0.5263 - loss: 1.3728
Epoch 38: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 282ms/step - accuracy: 0.5235 - loss: 1.3782 - val_accuracy: 0.4286 - val_loss: 1.9290 - learning_rate: 5.0000e-04
Epoch 39/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 217ms/step - accuracy: 0.5332 - loss: 1.3605
Epoch 39: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 230ms/step - accuracy: 0.5314 - loss: 1.3675 - val_accuracy: 0.2857 - val_loss: 2.0903 - learning_rate: 5.0000e-04
Epoch 40/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 185ms/step - accuracy: 0.5014 - loss: 1.4910
Epoch 40: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 199ms/step - accuracy: 0.5007 - loss: 1.4898 - val_accuracy: 0.2857 - val_loss: 2.1363 - learning_rate: 5.0000e-04
Epoch 41/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 182ms/step - accuracy: 0.5019 - loss: 1.3833
Epoch 41: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 196ms/step - accuracy: 0.5014 - loss: 1.3843 - val_accuracy: 0.4107 - val_loss: 1.9062 - learning_rate: 5.0000e-04
Epoch 42/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 285ms/step - accuracy: 0.5022 - loss: 1.3820
Epoch 42: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 299ms/step - accuracy: 0.5032 - loss: 1.3827 - val_accuracy: 0.3929 - val_loss: 1.9240 - learning_rate: 5.0000e-04
Epoch 43/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.4825 - loss: 1.3955
Epoch 43: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 197ms/step - accuracy: 0.4837 - loss: 1.3966 - val_accuracy: 0.4107 - val_loss: 2.0472 - learning_rate: 5.0000e-04
Epoch 44/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.5388 - loss: 1.3734
Epoch 44: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 196ms/step - accuracy: 0.5372 - loss: 1.3731 - val_accuracy: 0.3929 - val_loss: 1.9251 - learning_rate: 5.0000e-04
Epoch 45/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 183ms/step - accuracy: 0.5809 - loss: 1.2577
Epoch 45: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 197ms/step - accuracy: 0.5776 - loss: 1.2643 - val_accuracy: 0.4464 - val_loss: 2.0313 - learning_rate: 5.0000e-04
Epoch 46/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 241ms/step - accuracy: 0.4971 - loss: 1.3705
Epoch 46: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 267ms/step - accuracy: 0.4975 - loss: 1.3701 - val_accuracy: 0.3393 - val_loss: 2.0426 - learning_rate: 5.0000e-04
Epoch 47/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 182ms/step - accuracy: 0.5388 - loss: 1.3390
Epoch 47: val_loss did not improve from 1.84682
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 196ms/step - accuracy: 0.5392 - loss: 1.3381 - val_accuracy: 0.4286 - val_loss: 1.9620 - learning_rate: 5.0000e-04
Epoch 48/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 184ms/step - accuracy: 0.5252 - loss: 1.3582
Epoch 48: val_loss improved from 1.84682 to 1.80703, saving model to cnn_model_sgd.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 207ms/step - accuracy: 0.5261 - loss: 1.3550 - val_accuracy: 0.4464 - val_loss: 1.8070 - learning_rate: 2.5000e-04
Epoch 49/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 186ms/step - accuracy: 0.5866 - loss: 1.1867
Epoch 49: val_loss did not improve from 1.80703
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 199ms/step - accuracy: 0.5835 - loss: 1.1934 - val_accuracy: 0.3929 - val_loss: 2.0484 - learning_rate: 2.5000e-04
Epoch 50/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 267ms/step - accuracy: 0.5657 - loss: 1.2242
Epoch 50: val_loss did not improve from 1.80703
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 293ms/step - accuracy: 0.5634 - loss: 1.2289 - val_accuracy: 0.3750 - val_loss: 1.9490 - learning_rate: 2.5000e-04
In [ ]:
plot_model_accuracy(history,cnn_model_sgd)
No description has been provided for this image
In [ ]:
cnn_model_sgd.evaluate(test_gen)
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 67ms/step - accuracy: 0.5000 - loss: 1.6595
Out[ ]:
[1.6906964778900146, 0.5]

Observations:¶

Not much Improvemnet with previous models .SGD did not make the curve smooth.Though test score is same as first model but the training and validation score are lesser then first model .

In [ ]:
# SHow classfication report
generate_classification_report(cnn_model_sgd, test_gen)
2/2 ━━━━━━━━━━━━━━━━━━━━ 1s 268ms/step
                      precision    recall  f1-score   support

      chocolate_cake       0.83      1.00      0.91         5
        french_fries       0.50      0.75      0.60         8
           ice_cream       0.60      0.50      0.55         6
              nachos       0.00      0.00      0.00         5
          onion_ring       0.50      0.40      0.44         5
               pizza       0.50      1.00      0.67         6
              samosa       0.25      0.14      0.18         7
strawberry_shortcake       1.00      0.60      0.75         5
               tacos       0.40      0.40      0.40         5
              waffle       0.00      0.00      0.00         4

            accuracy                           0.50        56
           macro avg       0.46      0.48      0.45        56
        weighted avg       0.46      0.50      0.46        56

In [ ]:
# Show confusion matrix
plot_confusion_matrix(cnn_model_sgd,test_gen,list(test_gen.class_indices.keys()))
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 71ms/step
No description has been provided for this image

Observations:¶

  • Test Accuracy: 50%
  • Overall Accuracy: 46% less then 1st model (without he_normal)
  • High Performing Classes: chocolate_cake, pizza, ice_cream show good precision and recall.
  • Poorly Learned Classes: samosa, onion_ring, strawberry_shortcake — either completely misclassified or low recall.

Model performances is almost similar to 1st cnn model without he_normal and sgd(used Adam)

Performances(Trained with Balnaced train,test,validation set):¶

Class-wise Observations¶

Class Best Model (based on F1) Comments
chocolate_cake Model 3(SGD+he_normal) (0.91) Excellent in all models.
french_fries Model 3(SGD+he_normal)) (0.60) Improved with SGD + He Normal.
ice_cream Model 1(Adam) (0.62) Slight drop in Model 3.
nachos Model 1(Adam) (0.25) Still poor in all.
onion_ring Model 3(SGD+he_normal) (0.44) He Normal helped.
pizza Tie (1.00 recall in all) Always predicted correctly.
samosa Model 2(Adam+henormal) (0.33) Still weak prediction.
strawberry_shortcake Model 1 (0.57) / Model 2 & 3 (0.75) Higher precision and recall with He Normal.
tacos Tie (~0.40 F1 across) Consistent poor performance.
waffle Model 1(Adam) (0.29) Missed completely in Model 2 & 3.

Visualizing the prediction (Model-1 Default Initializer and Adam):¶

In [ ]:
# Visualise some predictions
visualize_predictions(model_2,test_gen,list(test_gen.class_indices.keys()))
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 282ms/step
No description has been provided for this image

Observations:¶

  • Strongest classes: chocolate_cake, pizza, ice_cream,French Fries

  • Performs better on visually distinct items.

Weaknesses:

  • Fails on subtle or similar-looking items: samosa, waffle, nachos, and strawberry_shortcake.

  • Somecases if there is some mayo like item in image it predict it as ice_cream might be due to similarity with icecream and mayo look.

  • Next Steps:

  • we can try adding more training data for weak classes.

  • Use of data augmentation or fine-tuning with class weighting to improve class balance.

  • Use transfer leeraning from model like Efficientnet,mobilenet

Milestone-2¶

All Extra Imports for milestone 2¶

In [ ]:
from tensorflow.keras.applications import EfficientNetB1
from tensorflow.keras.applications import MobileNetV3Large
from tensorflow.keras.models import Model
from tensorflow.keras import layers
from tensorflow.keras.applications.efficientnet import  preprocess_input
from tensorflow.keras.applications.mobilenet_v3 import preprocess_input
import tensorflow as tf

from tqdm import tqdm
from PIL import Image

from tensorflow.keras.preprocessing.image import img_to_array

from sklearn.svm import LinearSVC
from sklearn.linear_model import Ridge
from sklearn.preprocessing import LabelEncoder

Helper Function¶

In [58]:
def get_image_generators(train_df, valid_df, test_df, base_path,
                         target_size=(224, 224),
                         preprocessing_function=None,
                         rescale=None,
                         batch_size=32,
                         rotation_range=15,
                         width_shift_range=0.1,
                         height_shift_range=0.1,
                         shear_range=0.1,
                         zoom_range=0.2,
                         brightness_range=[0.8, 1.2],
                         horizontal_flip=True,
                         vertical_flip=True,
                         fill_mode='nearest',
                         preprocessing_fn=None):
    """
    Create and return image generators for training, validation, and testing.

    Args:
        train_df: DataFrame containing training image filenames and labels.
        valid_df: DataFrame containing validation image filenames and labels.
        test_df: DataFrame containing test image filenames and labels.
        base_path: Directory where all images are stored.
        target_size: Tuple specifying the size to which all images are resized.
        preprocessing_function: (Deprecated, use preprocessing_fn) preprocessing function like those from EfficientNet.
        rescale: Rescaling factor (e.g., 1./255) to normalize pixel values.
        batch_size: Number of images per batch.
        rotation_range: Degree range for random rotations.
        width_shift_range: Fraction of total width to shift.
        height_shift_range: Fraction of total height to shift.
        shear_range: Shear intensity (shear angle in counter-clockwise direction in degrees).
        zoom_range: Range for random zoom.
        brightness_range: Range for picking a brightness shift value from [min, max].
        horizontal_flip: Randomly flip inputs horizontally.
        vertical_flip: Randomly flip inputs vertically.
        fill_mode: Strategy for filling in newly created pixels after transformations.
        preprocessing_fn: Preprocessing function to apply to each input image.

    Returns:
        A tuple containing:
        - train_gen: Generator for training images with data augmentation.
        - valid_gen: Generator for validation images (no augmentation).
        - test_gen: Generator for test images (no augmentation).
    """

    # Create the ImageDataGenerator for training with augmentation and optional preprocessing
    train_datagen = ImageDataGenerator(
        preprocessing_function=preprocessing_fn,  # Apply model-specific preprocessing
        rescale=rescale,                          # Normalize pixel values
        rotation_range=rotation_range,            # Random rotation
        width_shift_range=width_shift_range,      # Random horizontal shift
        height_shift_range=height_shift_range,    # Random vertical shift
        shear_range=shear_range,                  # Shear transformation
        zoom_range=zoom_range,                    # Zoom in/out
        brightness_range=brightness_range,        # Random brightness adjustment
        horizontal_flip=horizontal_flip,          # Flip image horizontally
        vertical_flip=vertical_flip,              # Flip image vertically
        fill_mode=fill_mode                       # Fill missing pixels using the given strategy
    )

    # Create ImageDataGenerator for validation and testing (no augmentation)
    test_valid_datagen = ImageDataGenerator(
        rescale=rescale
    )

    # Create training data generator from DataFrame
    train_gen = train_datagen.flow_from_dataframe(
        train_df,                                 # DataFrame with image names and labels
        directory=base_path,                      # Directory path for images
        x_col='image_name',                       # Column with image filenames
        y_col='class_name',                       # Column with class labels
        target_size=target_size,                  # Resize images to target size
        class_mode='categorical',                 # One-hot encoded class labels
        batch_size=batch_size,                    # Number of samples per batch
        shuffle=True                              # Shuffle training data
    )

    # Create validation data generator (no shuffling)
    valid_gen = test_valid_datagen.flow_from_dataframe(
        valid_df,
        directory=base_path,
        x_col='image_name',
        y_col='class_name',
        target_size=target_size,
        class_mode='categorical',
        batch_size=batch_size,
        shuffle=False
    )

    # Create test data generator (no shuffling)
    test_gen = test_valid_datagen.flow_from_dataframe(
        test_df,
        directory=base_path,
        x_col='image_name',
        y_col='class_name',
        target_size=target_size,
        class_mode='categorical',
        batch_size=batch_size,
        shuffle=False
    )

    # Return the three generators
    return train_gen, valid_gen, test_gen

Transfer Learning CNN Model with a Pretrained Base

In [ ]:
def create_cnn_model_with_basemodel(base_model):
    """
    Creates a CNN model using a given pretrained base model with a custom classification head.

    Args:
        base_model: A pretrained model instance from tf.keras.applications (e.g., EfficientNetB0, MobileNetV2).

    Returns:
        model_transfer: A compiled Keras Model ready for training.
    """

    # Freeze the base model layers to prevent updating weights during training
    # This is useful for transfer learning when dataset is small
    base_model.trainable = False

    # Define the input layer with expected input shape (e.g., 224x224 RGB images)
    inputs = layers.Input(shape=(224, 224, 3), name="input_layer")

    # Pass the input through the base model
    x = base_model(inputs)

    # Add a global average pooling layer to reduce the spatial dimensions
    x = layers.GlobalAveragePooling2D(name="pooling_layer")(x)

    # Add dropout to reduce overfitting
    x = layers.Dropout(0.3)(x)

    # Dense layer with 10 units (assuming 10 classes for classification)
    x = layers.Dense(10)(x)

    # Final softmax activation to get class probabilities
    outputs = layers.Activation("softmax")(x)

    # Construct the final model
    model_transfer = Model(inputs, outputs)

    # Compile the model with Adam optimizer, categorical crossentropy loss, and accuracy metric
    model_transfer.compile(
        optimizer=Adam(learning_rate=0.001),
        loss='categorical_crossentropy',
        metrics=['accuracy']
    )

    return model_transfer

Optimization Of Previously Built CNN (Data Augmentation)¶

Created augmented image generators for training, validation, and testing with enhanced data augmentation settings.

In [ ]:
train_generator_aug, valid_generator_aug, test_generator_aug=get_image_generators(train_df,
                     valid_df,
                     test_df,
                     base_path,
                     rescale=1./255,
                     rotation_range=30,             # Increased rotation
                     width_shift_range=0.2,
                     height_shift_range=0.2,
                     shear_range=0.2,
                     zoom_range=0.3,                # More zoom
                     brightness_range=[0.8, 1.2],   # Random brightness
                     horizontal_flip=True,
                     vertical_flip=True,
                     fill_mode='nearest')
Found 446 validated image filenames belonging to 10 classes.
Found 56 validated image filenames belonging to 10 classes.
Found 56 validated image filenames belonging to 10 classes.
/usr/local/lib/python3.11/dist-packages/keras/src/legacy/preprocessing/image.py:920: UserWarning: Found 1 invalid image filename(s) in x_col="image_name". These filename(s) will be ignored.
  warnings.warn(
In [ ]:
# use previously defined model with augmented image on image genarator
cnn_opt=build_basic_cnn((128, 128, 3), 10)
/usr/local/lib/python3.11/dist-packages/keras/src/layers/convolutional/base_conv.py:107: UserWarning: Do not pass an `input_shape`/`input_dim` argument to a layer. When using Sequential models, prefer using an `Input(shape)` object as the first layer in the model instead.
  super().__init__(activity_regularizer=activity_regularizer, **kwargs)
In [ ]:
cnn_opt.fit(train_generator_aug, epochs=50, validation_data=valid_generator_aug)
Epoch 1/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 372ms/step - accuracy: 0.2415 - loss: 2.0514 - val_accuracy: 0.2857 - val_loss: 2.0827
Epoch 2/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 311ms/step - accuracy: 0.2508 - loss: 2.0415 - val_accuracy: 0.2679 - val_loss: 2.0470
Epoch 3/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 220ms/step - accuracy: 0.2875 - loss: 1.9549 - val_accuracy: 0.3393 - val_loss: 2.0942
Epoch 4/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 222ms/step - accuracy: 0.2839 - loss: 1.9625 - val_accuracy: 0.2679 - val_loss: 2.1167
Epoch 5/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 220ms/step - accuracy: 0.2668 - loss: 1.9914 - val_accuracy: 0.3214 - val_loss: 2.0588
Epoch 6/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 313ms/step - accuracy: 0.2950 - loss: 1.9507 - val_accuracy: 0.3036 - val_loss: 2.0699
Epoch 7/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 219ms/step - accuracy: 0.3135 - loss: 1.9089 - val_accuracy: 0.3036 - val_loss: 2.1616
Epoch 8/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 219ms/step - accuracy: 0.2937 - loss: 1.9841 - val_accuracy: 0.3214 - val_loss: 2.0395
Epoch 9/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 226ms/step - accuracy: 0.3324 - loss: 1.8806 - val_accuracy: 0.3571 - val_loss: 2.1377
Epoch 10/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 5s 223ms/step - accuracy: 0.3281 - loss: 1.8535 - val_accuracy: 0.3214 - val_loss: 2.0543
Epoch 11/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 220ms/step - accuracy: 0.3474 - loss: 1.8389 - val_accuracy: 0.4286 - val_loss: 1.9236
Epoch 12/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 219ms/step - accuracy: 0.2805 - loss: 1.9362 - val_accuracy: 0.3036 - val_loss: 1.9695
Epoch 13/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 320ms/step - accuracy: 0.3197 - loss: 1.8664 - val_accuracy: 0.3750 - val_loss: 2.0690
Epoch 14/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 251ms/step - accuracy: 0.3414 - loss: 1.8808 - val_accuracy: 0.2679 - val_loss: 2.2091
Epoch 15/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 224ms/step - accuracy: 0.3905 - loss: 1.7760 - val_accuracy: 0.3929 - val_loss: 1.9454
Epoch 16/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 230ms/step - accuracy: 0.3610 - loss: 1.7952 - val_accuracy: 0.3571 - val_loss: 1.9760
Epoch 17/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 303ms/step - accuracy: 0.3248 - loss: 1.7881 - val_accuracy: 0.3036 - val_loss: 2.0290
Epoch 18/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 311ms/step - accuracy: 0.3711 - loss: 1.8000 - val_accuracy: 0.4821 - val_loss: 1.9957
Epoch 19/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 218ms/step - accuracy: 0.3470 - loss: 1.8359 - val_accuracy: 0.3750 - val_loss: 2.0312
Epoch 20/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 315ms/step - accuracy: 0.3736 - loss: 1.7968 - val_accuracy: 0.3571 - val_loss: 1.9106
Epoch 21/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 217ms/step - accuracy: 0.3371 - loss: 1.8514 - val_accuracy: 0.3393 - val_loss: 2.0214
Epoch 22/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 223ms/step - accuracy: 0.3787 - loss: 1.7648 - val_accuracy: 0.4107 - val_loss: 2.0485
Epoch 23/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 6s 287ms/step - accuracy: 0.3780 - loss: 1.7205 - val_accuracy: 0.3929 - val_loss: 1.9259
Epoch 24/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 234ms/step - accuracy: 0.3875 - loss: 1.7316 - val_accuracy: 0.3571 - val_loss: 2.0011
Epoch 25/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 217ms/step - accuracy: 0.4081 - loss: 1.7523 - val_accuracy: 0.4107 - val_loss: 1.8786
Epoch 26/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 215ms/step - accuracy: 0.3830 - loss: 1.7507 - val_accuracy: 0.4643 - val_loss: 1.7618
Epoch 27/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 296ms/step - accuracy: 0.3622 - loss: 1.7894 - val_accuracy: 0.3214 - val_loss: 2.0010
Epoch 28/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 215ms/step - accuracy: 0.4034 - loss: 1.6973 - val_accuracy: 0.3750 - val_loss: 1.9833
Epoch 29/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 270ms/step - accuracy: 0.4241 - loss: 1.6636 - val_accuracy: 0.3393 - val_loss: 2.0436
Epoch 30/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 239ms/step - accuracy: 0.3983 - loss: 1.7120 - val_accuracy: 0.3750 - val_loss: 1.9622
Epoch 31/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 286ms/step - accuracy: 0.4030 - loss: 1.6669 - val_accuracy: 0.3750 - val_loss: 1.8917
Epoch 32/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 213ms/step - accuracy: 0.4233 - loss: 1.6361 - val_accuracy: 0.3750 - val_loss: 2.1482
Epoch 33/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 216ms/step - accuracy: 0.4180 - loss: 1.6470 - val_accuracy: 0.3750 - val_loss: 2.1063
Epoch 34/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 237ms/step - accuracy: 0.3716 - loss: 1.7552 - val_accuracy: 0.3750 - val_loss: 1.9108
Epoch 35/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 285ms/step - accuracy: 0.3960 - loss: 1.6343 - val_accuracy: 0.4821 - val_loss: 1.7849
Epoch 36/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 215ms/step - accuracy: 0.4099 - loss: 1.7081 - val_accuracy: 0.3214 - val_loss: 1.9108
Epoch 37/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 216ms/step - accuracy: 0.4294 - loss: 1.6256 - val_accuracy: 0.4286 - val_loss: 1.8883
Epoch 38/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 297ms/step - accuracy: 0.4320 - loss: 1.6718 - val_accuracy: 0.4464 - val_loss: 1.7869
Epoch 39/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 233ms/step - accuracy: 0.4821 - loss: 1.5415 - val_accuracy: 0.3929 - val_loss: 2.0051
Epoch 40/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 222ms/step - accuracy: 0.4442 - loss: 1.6251 - val_accuracy: 0.3214 - val_loss: 2.2209
Epoch 41/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 220ms/step - accuracy: 0.4483 - loss: 1.6115 - val_accuracy: 0.3929 - val_loss: 2.1858
Epoch 42/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 305ms/step - accuracy: 0.4318 - loss: 1.5852 - val_accuracy: 0.4821 - val_loss: 1.7201
Epoch 43/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 276ms/step - accuracy: 0.4252 - loss: 1.6631 - val_accuracy: 0.5179 - val_loss: 1.8009
Epoch 44/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 227ms/step - accuracy: 0.4705 - loss: 1.4694 - val_accuracy: 0.4107 - val_loss: 1.8156
Epoch 45/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 214ms/step - accuracy: 0.4705 - loss: 1.4929 - val_accuracy: 0.4464 - val_loss: 1.8472
Epoch 46/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 310ms/step - accuracy: 0.4633 - loss: 1.5743 - val_accuracy: 0.5357 - val_loss: 1.6693
Epoch 47/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 216ms/step - accuracy: 0.4847 - loss: 1.4585 - val_accuracy: 0.4643 - val_loss: 2.1401
Epoch 48/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 218ms/step - accuracy: 0.4827 - loss: 1.5363 - val_accuracy: 0.5000 - val_loss: 1.7886
Epoch 49/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 3s 218ms/step - accuracy: 0.3960 - loss: 1.6759 - val_accuracy: 0.3750 - val_loss: 2.0287
Epoch 50/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 4s 306ms/step - accuracy: 0.4710 - loss: 1.5196 - val_accuracy: 0.4107 - val_loss: 2.0379
Out[ ]:
<keras.src.callbacks.history.History at 0x7a8039d77c50>

Observations on above:

  • Trained a CNN model with transfer learning over 50 epochs using augmented image generators.
  • Training accuracy improved from 24% to ~47%.
  • Validation accuracy increased from 28% to a peak of ~53%.
  • Training loss decreased steadily from 2.05 to 1.51, indicating model learning.
  • Validation loss fluctuated across epochs, showing signs of overfitting.
  • Model shows moderate generalization and could benefit from:
    • Unfreezing some layers of the base model for fine-tuning.
    • Using techniques like early stopping, learning rate scheduling, or regularization.

Observation:¶

We donot see much improvement wirth training and validation

In [ ]:
cnn_opt.evaluate(test_generator_aug)
/usr/local/lib/python3.11/dist-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:121: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.
  self._warn_if_super_not_called()
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 180ms/step - accuracy: 0.4554 - loss: 1.5011
Out[ ]:
[1.5250766277313232, 0.4642857015132904]

Observation: Model Evaluation Summary

  • Test Loss: 1.525
  • Test Accuracy: 46.43%

Summary: The CNN model shows moderate performance on the augmented test dataset. Accuracy is below 50%, indicating possible underfitting or a need for further tuning. We can consider using more epochs, advanced architectures (like VGG16), or better data balancing to improve results.

No improvemnet with more augomenation like shear and zoom and brighteness change and more rotation .its almost similar to previous performance .

Transfer Learning¶

Helper¶

In [67]:
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.applications import efficientnet, mobilenet_v3

def visualize_predictions_tl(model, test_generator, class_names=None, num_images=12, model_type='efficientnet'):
    """
    Visualize predictions from a Keras model using EfficientNet or MobileNet-style preprocessing.

    Parameters:
    - model: Trained Keras model.
    - test_generator: Keras ImageDataGenerator (with shuffle=False, NO preprocessing).
    - class_names: Optional list of class names.
    - num_images: Number of images to display.
    - model_type: 'efficientnet' or 'mobilenet'.
    """

    # Step 1: Get images and true labels from test generator
    images, labels = next(iter(test_generator))

    # Step 2: Select appropriate preprocessing
    if model_type == 'efficientnet':
        preprocess_fn = efficientnet.preprocess_input
    elif model_type == 'mobilenet':
        preprocess_fn = mobilenet_v3.preprocess_input
    else:
        raise ValueError("Unsupported model_type. Use 'efficientnet' or 'mobilenet'.")

    # Step 3: Preprocess before prediction
    preprocessed_images = preprocess_fn(images.copy())
    predictions = model.predict(preprocessed_images)
    pred_labels = np.argmax(predictions, axis=1)
    true_labels = np.argmax(labels, axis=1)

    # Step 4: Get class names
    if class_names is None:
        class_names = list(test_generator.class_indices.keys())

    # Step 5: Convert images back to displayable format
    if model_type == 'mobilenet':
        # MobileNet scales [-1, 1] → Undo = (x + 1) * 127.5
        images_disp = ((images + 1.0) * 127.5).astype(np.uint8) if images.min() < 0 else (images * 255).astype(np.uint8)
    else:
        # EfficientNet: images assumed in [0, 1], scale to 0-255
        images_disp = (images * 255).astype(np.uint8) if images.max() <= 1.0 else images.astype(np.uint8)

    # Step 6: Plot predictions
    plt.figure(figsize=(15, 10))
    for i in range(min(num_images, len(images_disp))):
        plt.subplot(3, 4, i + 1)
        plt.imshow(images_disp[i])
        plt.axis('off')
        plt.title(
            f"True: {class_names[true_labels[i]]}\nPred: {class_names[pred_labels[i]]}",
            color='green' if pred_labels[i] == true_labels[i] else 'red'
        )
    plt.tight_layout()
    plt.show()

Use Efficient Net¶

Train, validation, and test generators were created using a helper function with EfficientNet's preprocessing and data augmentation applied.

In [59]:
# Train test and validation generator using helper function with preprocessing passed from efficientnet
train_generator_tl, valid_generator_tl, test_generator_tl=get_image_generators(train_df,
                     valid_df,
                     test_df,
                     base_path,
    preprocessing_function=tf.keras.applications.efficientnet.preprocess_input, # from efficentnet
    rotation_range=15,
    width_shift_range=0.1,
    height_shift_range=0.1,
    shear_range=0.1,
    zoom_range=0.2,                # More zoom
    horizontal_flip=True,
    vertical_flip=True,)
Found 446 validated image filenames belonging to 10 classes.
Found 56 validated image filenames belonging to 10 classes.
Found 56 validated image filenames belonging to 10 classes.
/usr/local/lib/python3.11/dist-packages/keras/src/legacy/preprocessing/image.py:920: UserWarning: Found 1 invalid image filename(s) in x_col="image_name". These filename(s) will be ignored.
  warnings.warn(

Using EfficinetNet as base¶

In [42]:
    # Load EfficientNetB0 base model with pretrained ImageNet weights
    K.clear_session()
    bs_model = EfficientNetB1(include_top=False, weights='imagenet', input_shape=(224,224,3))
    cnn_model_effcinetnet=create_cnn_model_with_basemodel(bs_model)
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb1_notop.h5
27018416/27018416 ━━━━━━━━━━━━━━━━━━━━ 0s 0us/step
In [43]:
# Show summary
cnn_model_effcinetnet.summary()
Model: "functional"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Layer (type)                    ┃ Output Shape           ┃       Param # ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ input_layer (InputLayer)        │ (None, 224, 224, 3)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ efficientnetb1 (Functional)     │ (None, 7, 7, 1280)     │     6,575,239 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ pooling_layer                   │ (None, 1280)           │             0 │
│ (GlobalAveragePooling2D)        │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dropout (Dropout)               │ (None, 1280)           │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dense (Dense)                   │ (None, 10)             │        12,810 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ activation (Activation)         │ (None, 10)             │             0 │
└─────────────────────────────────┴────────────────────────┴───────────────┘
 Total params: 6,588,049 (25.13 MB)
 Trainable params: 12,810 (50.04 KB)
 Non-trainable params: 6,575,239 (25.08 MB)

Observations:¶

We can see around 6.5 million params there out of which 12,810 are trainable

  • The model is built on top of EfficientNetB1 as a fixed (non-trainable) feature extractor.
  • Total parameters: 6,588,049 (~25.13 MB).
  • Trainable parameters: 12,810 (~50.04 KB), only in the classification head.
  • Non-trainable parameters (from EfficientNetB1): 6,575,239 (~25.08 MB).
  • A GlobalAveragePooling2D layer reduces the feature map dimensions before classification.
  • A Dropout layer is used to reduce overfitting.
  • Final Dense layer outputs predictions for 10 classes.
  • The model is optimized for transfer learning with low training overhead.
  • Defined model callbacks using a helper function:
    • ModelCheckpoint: Saves the best model to model_tl_efnet.weights.h5.
    • EarlyStopping: Stops training when validation performance stops improving.
    • ReduceLROnPlateau: Reduces learning rate when validation loss plateaus, helping the model converge better before early stopping is triggered.
In [44]:
# Define checkpoint early stopping and reducelr (before stopping)
checkpointer, earlystopping, reduceLR=get_callbacks(filepath='model_tl_efnet.weights.h5')
In [45]:
# fit the model and show history
history_eff_net=cnn_model_effcinetnet.fit(train_generator_tl,
                          epochs=50,
                          validation_data=valid_generator_tl,
                          callbacks=[checkpointer, reduceLR, earlystopping]
                          )
/usr/local/lib/python3.11/dist-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:121: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.
  self._warn_if_super_not_called()
Epoch 1/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 2s/step - accuracy: 0.1682 - loss: 2.3264
Epoch 1: val_loss improved from inf to 1.65869, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 90s 4s/step - accuracy: 0.1741 - loss: 2.3139 - val_accuracy: 0.6607 - val_loss: 1.6587 - learning_rate: 0.0010
Epoch 2/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 647ms/step - accuracy: 0.4947 - loss: 1.6462
Epoch 2: val_loss improved from 1.65869 to 1.19982, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 733ms/step - accuracy: 0.4984 - loss: 1.6383 - val_accuracy: 0.7143 - val_loss: 1.1998 - learning_rate: 0.0010
Epoch 3/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 641ms/step - accuracy: 0.6349 - loss: 1.2750
Epoch 3: val_loss improved from 1.19982 to 0.96371, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 729ms/step - accuracy: 0.6372 - loss: 1.2679 - val_accuracy: 0.7679 - val_loss: 0.9637 - learning_rate: 0.0010
Epoch 4/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 518ms/step - accuracy: 0.7281 - loss: 0.9709
Epoch 4: val_loss improved from 0.96371 to 0.82117, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 602ms/step - accuracy: 0.7289 - loss: 0.9694 - val_accuracy: 0.8036 - val_loss: 0.8212 - learning_rate: 0.0010
Epoch 5/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 643ms/step - accuracy: 0.7647 - loss: 0.8407
Epoch 5: val_loss improved from 0.82117 to 0.73608, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 728ms/step - accuracy: 0.7650 - loss: 0.8403 - val_accuracy: 0.8036 - val_loss: 0.7361 - learning_rate: 0.0010
Epoch 6/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 608ms/step - accuracy: 0.7915 - loss: 0.8035
Epoch 6: val_loss improved from 0.73608 to 0.67350, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 688ms/step - accuracy: 0.7935 - loss: 0.7972 - val_accuracy: 0.8214 - val_loss: 0.6735 - learning_rate: 0.0010
Epoch 7/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 517ms/step - accuracy: 0.8741 - loss: 0.6229
Epoch 7: val_loss improved from 0.67350 to 0.63524, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 613ms/step - accuracy: 0.8729 - loss: 0.6219 - val_accuracy: 0.8393 - val_loss: 0.6352 - learning_rate: 0.0010
Epoch 8/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 587ms/step - accuracy: 0.8819 - loss: 0.5628
Epoch 8: val_loss improved from 0.63524 to 0.60559, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 672ms/step - accuracy: 0.8819 - loss: 0.5615 - val_accuracy: 0.8393 - val_loss: 0.6056 - learning_rate: 0.0010
Epoch 9/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 621ms/step - accuracy: 0.8795 - loss: 0.5306
Epoch 9: val_loss improved from 0.60559 to 0.58405, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 703ms/step - accuracy: 0.8790 - loss: 0.5300 - val_accuracy: 0.8393 - val_loss: 0.5841 - learning_rate: 0.0010
Epoch 10/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 502ms/step - accuracy: 0.8781 - loss: 0.4973
Epoch 10: val_loss improved from 0.58405 to 0.56292, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 597ms/step - accuracy: 0.8788 - loss: 0.4966 - val_accuracy: 0.8571 - val_loss: 0.5629 - learning_rate: 0.0010
Epoch 11/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 514ms/step - accuracy: 0.8864 - loss: 0.4680
Epoch 11: val_loss improved from 0.56292 to 0.54423, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 598ms/step - accuracy: 0.8861 - loss: 0.4674 - val_accuracy: 0.8750 - val_loss: 0.5442 - learning_rate: 0.0010
Epoch 12/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 692ms/step - accuracy: 0.9198 - loss: 0.4193
Epoch 12: val_loss improved from 0.54423 to 0.53510, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 11s 774ms/step - accuracy: 0.9187 - loss: 0.4194 - val_accuracy: 0.8393 - val_loss: 0.5351 - learning_rate: 0.0010
Epoch 13/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 642ms/step - accuracy: 0.8913 - loss: 0.4278
Epoch 13: val_loss improved from 0.53510 to 0.52289, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 726ms/step - accuracy: 0.8922 - loss: 0.4255 - val_accuracy: 0.8750 - val_loss: 0.5229 - learning_rate: 0.0010
Epoch 14/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 501ms/step - accuracy: 0.9203 - loss: 0.3629
Epoch 14: val_loss improved from 0.52289 to 0.52178, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 585ms/step - accuracy: 0.9201 - loss: 0.3633 - val_accuracy: 0.8750 - val_loss: 0.5218 - learning_rate: 0.0010
Epoch 15/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 610ms/step - accuracy: 0.9013 - loss: 0.4133
Epoch 15: val_loss improved from 0.52178 to 0.51837, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 693ms/step - accuracy: 0.9015 - loss: 0.4110 - val_accuracy: 0.8750 - val_loss: 0.5184 - learning_rate: 0.0010
Epoch 16/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 624ms/step - accuracy: 0.8949 - loss: 0.3705
Epoch 16: val_loss improved from 0.51837 to 0.51272, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 705ms/step - accuracy: 0.8956 - loss: 0.3695 - val_accuracy: 0.8750 - val_loss: 0.5127 - learning_rate: 0.0010
Epoch 17/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 503ms/step - accuracy: 0.9271 - loss: 0.3301
Epoch 17: val_loss improved from 0.51272 to 0.50467, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 596ms/step - accuracy: 0.9274 - loss: 0.3291 - val_accuracy: 0.8750 - val_loss: 0.5047 - learning_rate: 0.0010
Epoch 18/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 583ms/step - accuracy: 0.9140 - loss: 0.3459
Epoch 18: val_loss improved from 0.50467 to 0.50421, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 669ms/step - accuracy: 0.9139 - loss: 0.3456 - val_accuracy: 0.8750 - val_loss: 0.5042 - learning_rate: 0.0010
Epoch 19/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 636ms/step - accuracy: 0.9089 - loss: 0.3171
Epoch 19: val_loss improved from 0.50421 to 0.49803, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 723ms/step - accuracy: 0.9085 - loss: 0.3187 - val_accuracy: 0.8750 - val_loss: 0.4980 - learning_rate: 0.0010
Epoch 20/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 536ms/step - accuracy: 0.9383 - loss: 0.3057
Epoch 20: val_loss improved from 0.49803 to 0.48865, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 652ms/step - accuracy: 0.9384 - loss: 0.3058 - val_accuracy: 0.8750 - val_loss: 0.4886 - learning_rate: 0.0010
Epoch 21/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 549ms/step - accuracy: 0.9127 - loss: 0.3254
Epoch 21: val_loss did not improve from 0.48865
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 572ms/step - accuracy: 0.9133 - loss: 0.3242 - val_accuracy: 0.8750 - val_loss: 0.4904 - learning_rate: 0.0010
Epoch 22/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 644ms/step - accuracy: 0.9331 - loss: 0.2739
Epoch 22: val_loss improved from 0.48865 to 0.48727, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 12s 730ms/step - accuracy: 0.9328 - loss: 0.2741 - val_accuracy: 0.8929 - val_loss: 0.4873 - learning_rate: 0.0010
Epoch 23/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 708ms/step - accuracy: 0.9539 - loss: 0.2448
Epoch 23: val_loss improved from 0.48727 to 0.48532, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 11s 793ms/step - accuracy: 0.9540 - loss: 0.2449 - val_accuracy: 0.8750 - val_loss: 0.4853 - learning_rate: 0.0010
Epoch 24/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 529ms/step - accuracy: 0.9530 - loss: 0.2596
Epoch 24: val_loss improved from 0.48532 to 0.48246, saving model to model_tl_efnet.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 629ms/step - accuracy: 0.9530 - loss: 0.2595 - val_accuracy: 0.8750 - val_loss: 0.4825 - learning_rate: 0.0010
Epoch 25/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 593ms/step - accuracy: 0.9367 - loss: 0.2562
Epoch 25: val_loss did not improve from 0.48246
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 614ms/step - accuracy: 0.9367 - loss: 0.2559 - val_accuracy: 0.8750 - val_loss: 0.4896 - learning_rate: 0.0010
Epoch 26/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 628ms/step - accuracy: 0.9562 - loss: 0.2416
Epoch 26: val_loss did not improve from 0.48246
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 651ms/step - accuracy: 0.9556 - loss: 0.2417 - val_accuracy: 0.8750 - val_loss: 0.4987 - learning_rate: 0.0010
Epoch 27/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 518ms/step - accuracy: 0.9559 - loss: 0.2238
Epoch 27: val_loss did not improve from 0.48246
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 545ms/step - accuracy: 0.9563 - loss: 0.2240 - val_accuracy: 0.8750 - val_loss: 0.5010 - learning_rate: 0.0010

Training Observation (Epochs 30–37)

  • The model continues to show high training accuracy (~95–98%) with low training loss.
  • Validation accuracy remains stable around 85–88%, showing no significant improvement.
  • Validation loss slightly fluctuates around 0.50, with a minor improvement at Epoch 32:
    • Epoch 32: val_loss improved from 0.50878 to 0.49954 → model checkpoint saved.
  • No further validation loss improvement observed after Epoch 32.
  • Learning rate remains constant at 0.0010; ReduceLROnPlateau has not triggered yet.
  • Model may be approaching performance saturation on the validation set.
In [ ]:
# Show model accuracy
plot_model_accuracy(history_eff_net,cnn_model_effcinetnet)
No description has been provided for this image

Obsrvations:¶

  • We can see the model is kind of little bit overfitting with 97% accuracy on training where as validation accuracy stand at 87.5%
  • Still this is a good improvements over previous model.

Observations from Model Training and Validation

Training & Validation Accuracy (Left Plot)

  • Final Training Accuracy: 97.09%
  • Final Validation Accuracy: 87.50%
  • Training accuracy steadily increases and stabilizes near 97%.
  • Validation accuracy improves initially and plateaus around 87-88% from epoch ~10 onward.
  • A ~10% gap between training and validation accuracy suggests overfitting.

Training & Validation Loss (Right Plot)

  • Final Training Loss: 0.1712
  • Final Validation Loss: 0.5146
  • Training loss consistently decreases, showing the model is fitting the training data well.
  • Validation loss decreases initially but plateaus after ~10 epochs, indicating limited generalization.
  • The higher validation loss compared to training loss confirms mild overfitting.
In [ ]:
# Evaluate on test data
cnn_model_effcinetnet.evaluate(test_generator_tl)
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 75ms/step - accuracy: 0.8423 - loss: 0.3950
Out[ ]:
[0.3819694519042969, 0.8571428656578064]

Observations:¶

  • Test accuracy is around 84% which is far better then previous models without transfer learning

  • Test Loss: 0.3820

  • Test Accuracy: 85.71%

The test accuracy is close to the validation accuracy (~87.50%), indicating that the model generalizes well and is not significantly overfitting.
The test loss is also reasonably low, supporting consistent performance on unseen data.

In [ ]:
# Show Confusion matrix
plot_confusion_matrix(cnn_model_effcinetnet,test_generator_tl,list(test_generator_tl.class_indices.keys()))
2/2 ━━━━━━━━━━━━━━━━━━━━ 18s 8s/step
No description has been provided for this image

Observations:¶

  • Classes Like pizza,chocolate_cake,frnech_fries,onion_ring are predicted quite correctly without any false positive or nagative.
  • Classes like ice_cream,nachos,samosh,waffle has some mis classicfication
  • Tacos has most miss classfication as some tacos are detected as samosha and nachos
In [65]:
effcinet_net_res_df=generate_classification_report(cnn_model_effcinetnet, test_generator_tl,)
/usr/local/lib/python3.11/dist-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:121: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.
  self._warn_if_super_not_called()
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 147ms/step
                      precision    recall  f1-score   support

      chocolate_cake       1.00      1.00      1.00         5
        french_fries       1.00      1.00      1.00         8
           ice_cream       0.83      0.83      0.83         6
              nachos       0.80      0.80      0.80         5
          onion_ring       1.00      1.00      1.00         5
               pizza       1.00      1.00      1.00         6
              samosa       0.75      0.86      0.80         7
strawberry_shortcake       0.67      0.80      0.73         5
               tacos       0.50      0.40      0.44         5
              waffle       1.00      0.75      0.86         4

            accuracy                           0.86        56
           macro avg       0.86      0.84      0.85        56
        weighted avg       0.86      0.86      0.86        56

In [68]:
# Visualise some predictions
visualize_predictions_tl(cnn_model_effcinetnet, test_generator_tl,model_type='efficientnet')
1/1 ━━━━━━━━━━━━━━━━━━━━ 0s 97ms/step
No description has been provided for this image

Observations:¶

  • F1 score at .85 whih is good and accurcy is at 86% on test data
  • There are missclassification w.r.t tacos wafle ,strawberry_shortcake,ice_cream,nachos,samosa which we had already observed in confusion matrix

This model has 6.5 million parameters due to which it might be overfitting with training .We will try with light model like Mobilenet¶

Base Model MobileNet¶

In [70]:
train_generator_tl_2, valid_generator_tl_2, test_generator_tl_2 = get_image_generators(
    train_df, valid_df, test_df, base_path,

    preprocessing_function=tf.keras.applications.mobilenet_v3.preprocess_input,

    rotation_range=15,               # Randomly rotate images within ±15 degrees
    width_shift_range=0.1,          # Shift image width by 10 percent
    height_shift_range=0.1,         # Shift image height by 10 percent
    shear_range=0.1,                # Apply shearing transformation
    zoom_range=0.2,                 # Zoom into the image by up to 20 percent
    horizontal_flip=True,           # Randomly flip images horizontally
    vertical_flip=True              # Randomly flip images vertically
)
Found 446 validated image filenames belonging to 10 classes.
Found 56 validated image filenames belonging to 10 classes.
Found 56 validated image filenames belonging to 10 classes.
/usr/local/lib/python3.11/dist-packages/keras/src/legacy/preprocessing/image.py:920: UserWarning: Found 1 invalid image filename(s) in x_col="image_name". These filename(s) will be ignored.
  warnings.warn(
In [71]:
# define call back
checkpointer, earlystopping, reduceLR=get_callbacks(filepath='model_tl_mob_net.weights.h5')
In [72]:
# clear session
K.clear_session()
# Load MobileNetV3Large base model with pretrained ImageNet weights
base_model = MobileNetV3Large(include_top=False, weights='imagenet', input_shape=(224,224,3))
cnn_model_mobilenet=create_cnn_model_with_basemodel(base_model)
Downloading data from https://storage.googleapis.com/tensorflow/keras-applications/mobilenet_v3/weights_mobilenet_v3_large_224_1.0_float_no_top_v2.h5
12683000/12683000 ━━━━━━━━━━━━━━━━━━━━ 0s 0us/step
In [73]:
# Show summary
cnn_model_mobilenet.summary()
Model: "functional"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━┓
┃ Layer (type)                    ┃ Output Shape           ┃       Param # ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━┩
│ input_layer (InputLayer)        │ (None, 224, 224, 3)    │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ MobileNetV3Large (Functional)   │ (None, 7, 7, 960)      │     2,996,352 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ pooling_layer                   │ (None, 960)            │             0 │
│ (GlobalAveragePooling2D)        │                        │               │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dropout (Dropout)               │ (None, 960)            │             0 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ dense (Dense)                   │ (None, 10)             │         9,610 │
├─────────────────────────────────┼────────────────────────┼───────────────┤
│ activation_20 (Activation)      │ (None, 10)             │             0 │
└─────────────────────────────────┴────────────────────────┴───────────────┘
 Total params: 3,005,962 (11.47 MB)
 Trainable params: 9,610 (37.54 KB)
 Non-trainable params: 2,996,352 (11.43 MB)

Observation

Transfer Learning Model Summary (MobileNetV3 Large)

The model uses MobileNetV3 Large as the base for feature extraction with additional custom layers for classification:

• Input Layer:

  • Shape: (None, 224, 224, 3)
  • Accepts RGB images of size 224x224.

• Base Model:

  • MobileNetV3Large
  • Output Shape: (None, 7, 7, 960)
  • Pretrained weights are frozen (non-trainable).
  • Parameters: 2,996,352 (non-trainable)

• Top Layers:

  • GlobalAveragePooling2D: Converts 7×7×960 feature maps into 960-dimensional vector.
  • Dropout: Adds regularization by randomly dropping units during training.
  • Dense: Fully connected layer with 10 output neurons (for 10 classes).
  • Activation: Final activation layer for prediction (e.g., softmax).

• Total Parameters:

  • 3,005,962 (~11.47 MB)
  • Trainable: 9,610 (~37.5 KB)
  • Non-trainable: 2,996,352 (~11.43 MB)

Only the custom top layers are trainable, making this a fine-tuning setup ideal for transfer learning with limited data.

In [74]:
# Fit the model
history_mob_net=cnn_model_mobilenet.fit(train_generator_tl_2, epochs=50, validation_data=valid_generator_tl_2,callbacks=[checkpointer,earlystopping,reduceLR])
/usr/local/lib/python3.11/dist-packages/keras/src/trainers/data_adapters/py_dataset_adapter.py:121: UserWarning: Your `PyDataset` class should call `super().__init__(**kwargs)` in its constructor. `**kwargs` can include `workers`, `use_multiprocessing`, `max_queue_size`. Do not pass these arguments to `fit()`, as they will be ignored.
  self._warn_if_super_not_called()
Epoch 1/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 986ms/step - accuracy: 0.1159 - loss: 3.2117
Epoch 1: val_loss improved from inf to 1.96670, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 39s 2s/step - accuracy: 0.1167 - loss: 3.1979 - val_accuracy: 0.3036 - val_loss: 1.9667 - learning_rate: 0.0010
Epoch 2/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 478ms/step - accuracy: 0.2849 - loss: 2.2567
Epoch 2: val_loss improved from 1.96670 to 1.23128, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 7s 532ms/step - accuracy: 0.2874 - loss: 2.2433 - val_accuracy: 0.6429 - val_loss: 1.2313 - learning_rate: 0.0010
Epoch 3/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 609ms/step - accuracy: 0.4550 - loss: 1.6146
Epoch 3: val_loss improved from 1.23128 to 0.93286, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 664ms/step - accuracy: 0.4571 - loss: 1.6087 - val_accuracy: 0.7679 - val_loss: 0.9329 - learning_rate: 0.0010
Epoch 4/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 562ms/step - accuracy: 0.5862 - loss: 1.1896
Epoch 4: val_loss improved from 0.93286 to 0.77062, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 637ms/step - accuracy: 0.5879 - loss: 1.1880 - val_accuracy: 0.8393 - val_loss: 0.7706 - learning_rate: 0.0010
Epoch 5/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 569ms/step - accuracy: 0.6533 - loss: 0.9883
Epoch 5: val_loss improved from 0.77062 to 0.64118, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 628ms/step - accuracy: 0.6541 - loss: 0.9854 - val_accuracy: 0.8571 - val_loss: 0.6412 - learning_rate: 0.0010
Epoch 6/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 615ms/step - accuracy: 0.7123 - loss: 0.9363
Epoch 6: val_loss improved from 0.64118 to 0.59857, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 10s 671ms/step - accuracy: 0.7116 - loss: 0.9349 - val_accuracy: 0.8214 - val_loss: 0.5986 - learning_rate: 0.0010
Epoch 7/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 626ms/step - accuracy: 0.6870 - loss: 0.8383
Epoch 7: val_loss improved from 0.59857 to 0.54982, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 682ms/step - accuracy: 0.6874 - loss: 0.8356 - val_accuracy: 0.8393 - val_loss: 0.5498 - learning_rate: 0.0010
Epoch 8/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 500ms/step - accuracy: 0.7415 - loss: 0.7535
Epoch 8: val_loss improved from 0.54982 to 0.53114, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 554ms/step - accuracy: 0.7430 - loss: 0.7511 - val_accuracy: 0.8393 - val_loss: 0.5311 - learning_rate: 0.0010
Epoch 9/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 606ms/step - accuracy: 0.7980 - loss: 0.6211
Epoch 9: val_loss improved from 0.53114 to 0.51314, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 660ms/step - accuracy: 0.7979 - loss: 0.6210 - val_accuracy: 0.8393 - val_loss: 0.5131 - learning_rate: 0.0010
Epoch 10/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 551ms/step - accuracy: 0.8067 - loss: 0.5781
Epoch 10: val_loss improved from 0.51314 to 0.49080, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 622ms/step - accuracy: 0.8089 - loss: 0.5746 - val_accuracy: 0.8750 - val_loss: 0.4908 - learning_rate: 0.0010
Epoch 11/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 492ms/step - accuracy: 0.8329 - loss: 0.5138
Epoch 11: val_loss improved from 0.49080 to 0.49066, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 545ms/step - accuracy: 0.8337 - loss: 0.5118 - val_accuracy: 0.8750 - val_loss: 0.4907 - learning_rate: 0.0010
Epoch 12/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 627ms/step - accuracy: 0.8499 - loss: 0.4747
Epoch 12: val_loss improved from 0.49066 to 0.47977, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 683ms/step - accuracy: 0.8500 - loss: 0.4743 - val_accuracy: 0.8750 - val_loss: 0.4798 - learning_rate: 0.0010
Epoch 13/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 574ms/step - accuracy: 0.8622 - loss: 0.4161
Epoch 13: val_loss improved from 0.47977 to 0.47117, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 652ms/step - accuracy: 0.8617 - loss: 0.4185 - val_accuracy: 0.8571 - val_loss: 0.4712 - learning_rate: 0.0010
Epoch 14/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 495ms/step - accuracy: 0.8923 - loss: 0.4111
Epoch 14: val_loss improved from 0.47117 to 0.46910, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 550ms/step - accuracy: 0.8918 - loss: 0.4099 - val_accuracy: 0.8571 - val_loss: 0.4691 - learning_rate: 0.0010
Epoch 15/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 615ms/step - accuracy: 0.8843 - loss: 0.3378
Epoch 15: val_loss improved from 0.46910 to 0.46412, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 670ms/step - accuracy: 0.8838 - loss: 0.3391 - val_accuracy: 0.8929 - val_loss: 0.4641 - learning_rate: 0.0010
Epoch 16/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 568ms/step - accuracy: 0.8975 - loss: 0.3386
Epoch 16: val_loss did not improve from 0.46412
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 619ms/step - accuracy: 0.8976 - loss: 0.3394 - val_accuracy: 0.8571 - val_loss: 0.4643 - learning_rate: 0.0010
Epoch 17/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 516ms/step - accuracy: 0.8860 - loss: 0.3239
Epoch 17: val_loss did not improve from 0.46412
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 536ms/step - accuracy: 0.8865 - loss: 0.3244 - val_accuracy: 0.8571 - val_loss: 0.4746 - learning_rate: 0.0010
Epoch 18/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 611ms/step - accuracy: 0.9527 - loss: 0.2556
Epoch 18: val_loss improved from 0.46412 to 0.45416, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 664ms/step - accuracy: 0.9515 - loss: 0.2580 - val_accuracy: 0.8929 - val_loss: 0.4542 - learning_rate: 0.0010
Epoch 19/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 560ms/step - accuracy: 0.9368 - loss: 0.2813
Epoch 19: val_loss improved from 0.45416 to 0.45069, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 638ms/step - accuracy: 0.9352 - loss: 0.2835 - val_accuracy: 0.9107 - val_loss: 0.4507 - learning_rate: 0.0010
Epoch 20/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 492ms/step - accuracy: 0.9111 - loss: 0.2785
Epoch 20: val_loss improved from 0.45069 to 0.44662, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 548ms/step - accuracy: 0.9102 - loss: 0.2802 - val_accuracy: 0.8929 - val_loss: 0.4466 - learning_rate: 0.0010
Epoch 21/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 613ms/step - accuracy: 0.8960 - loss: 0.3172
Epoch 21: val_loss did not improve from 0.44662
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 633ms/step - accuracy: 0.8972 - loss: 0.3152 - val_accuracy: 0.8750 - val_loss: 0.4749 - learning_rate: 0.0010
Epoch 22/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 492ms/step - accuracy: 0.9348 - loss: 0.2505
Epoch 22: val_loss did not improve from 0.44662
14/14 ━━━━━━━━━━━━━━━━━━━━ 7s 511ms/step - accuracy: 0.9345 - loss: 0.2502 - val_accuracy: 0.8929 - val_loss: 0.4524 - learning_rate: 0.0010
Epoch 23/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 612ms/step - accuracy: 0.9029 - loss: 0.2699
Epoch 23: val_loss improved from 0.44662 to 0.44148, saving model to model_tl_mob_net.weights.h5
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 672ms/step - accuracy: 0.9042 - loss: 0.2685 - val_accuracy: 0.8929 - val_loss: 0.4415 - learning_rate: 0.0010
Epoch 24/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 629ms/step - accuracy: 0.9409 - loss: 0.2507
Epoch 24: val_loss did not improve from 0.44148
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 649ms/step - accuracy: 0.9405 - loss: 0.2504 - val_accuracy: 0.8571 - val_loss: 0.4657 - learning_rate: 0.0010
Epoch 25/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 507ms/step - accuracy: 0.9234 - loss: 0.2487
Epoch 25: val_loss did not improve from 0.44148
14/14 ━━━━━━━━━━━━━━━━━━━━ 7s 527ms/step - accuracy: 0.9236 - loss: 0.2483 - val_accuracy: 0.8929 - val_loss: 0.4680 - learning_rate: 0.0010
Epoch 26/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 618ms/step - accuracy: 0.9451 - loss: 0.2061
Epoch 26: val_loss did not improve from 0.44148
14/14 ━━━━━━━━━━━━━━━━━━━━ 9s 639ms/step - accuracy: 0.9447 - loss: 0.2069 - val_accuracy: 0.8750 - val_loss: 0.4444 - learning_rate: 0.0010
Epoch 27/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 505ms/step - accuracy: 0.9377 - loss: 0.2050
Epoch 27: val_loss did not improve from 0.44148
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 534ms/step - accuracy: 0.9377 - loss: 0.2058 - val_accuracy: 0.8571 - val_loss: 0.4427 - learning_rate: 0.0010
Epoch 28/50
14/14 ━━━━━━━━━━━━━━━━━━━━ 0s 561ms/step - accuracy: 0.9501 - loss: 0.2046
Epoch 28: val_loss did not improve from 0.44148
14/14 ━━━━━━━━━━━━━━━━━━━━ 8s 583ms/step - accuracy: 0.9503 - loss: 0.2040 - val_accuracy: 0.8929 - val_loss: 0.4684 - learning_rate: 0.0010

Observations: Model Training Progress (Epochs 1–20)

The model was trained for 50 epochs using a MobileNetV3 backbone with transfer learning.

Training Accurcay .95 and validation Accuracy .89%

The model continues to generalize well with increasing accuracy and gradually reducing validation loss, suggesting healthy training without overfitting (yet).

In [75]:
# Evaluate on test data
cnn_model_mobilenet.evaluate(test_generator_tl_2)
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 89ms/step - accuracy: 0.7857 - loss: 0.5470
Out[75]:
[0.5325861573219299, 0.8035714030265808]

Test Set Evaluation (MobileNetV3 Model)

After training, the model was evaluated on the test dataset using cnn_model_mobilenet.evaluate():

• Test Loss: 0.5325
• Test Accuracy: 80.35%

The model demonstrates strong generalization with over 80% accuracy on unseen test data, consistent with validation performance.

This indicates that the transfer learning approach with MobileNetV3 and data augmentation was effective in building a robust classifier.

In [76]:
# Show model accurcy plot
plot_model_accuracy(history_mob_net,cnn_model_effcinetnet)
No description has been provided for this image

Observations:¶

The training and validation curves reveal strong learning dynamics and generalization:

Accuracy

  • Training Accuracy: 0.95 (≈ 95%)
  • Validation Accuracy: 0.89 (≈ 89%)
  • The gap between training and validation accuracy is small, indicating low overfitting
  • Validation accuracy plateaued after epoch ~10, suggesting the model converged early

Loss

  • Training Loss: 0.2899
  • Validation Loss: 0.5012
  • Both training and validation loss decreased consistently
  • The validation loss stabilized from epoch ~10, aligning with accuracy trends

Final Test Evaluation

  • Test Accuracy: 80.34%
  • Test Loss: 0.5388

Insights

  • The model achieved excellent performance through transfer learning with MobileNetV3
  • Training and validation curves indicate that early stopping could help prevent slight overfitting beyond epoch 10–12
  • Potential improvements: learning rate tuning, data augmentation, or fine-tuning deeper layers

Overall, the model is well-trained and generalizes effectively to unseen data

In [77]:
plot_confusion_matrix(cnn_model_mobilenet,test_generator_tl,list(test_generator_tl_2.class_indices.keys()))
2/2 ━━━━━━━━━━━━━━━━━━━━ 12s 7s/step
No description has been provided for this image

Observations:¶

  • Classes Like pizza,chocolate_cake,frnech_fries,onion_ring are predicted quite correctly without any false positive or nagative.
  • Classes like ice_cream,nachos,samosh,waffle has some mis classicfication
  • Tacos has most miss classfication as some tacos are detected as samosha and nachos
  • Samosha is also having so many misclassification detected as straberry_shortcake or tacos
  • There is an increase in missclassfication for strawberry short cake. compared to efficientnet
In [78]:
# Show classification report
mobilenet_res_df=generate_classification_report(cnn_model_mobilenet, test_generator_tl_2)
2/2 ━━━━━━━━━━━━━━━━━━━━ 0s 82ms/step
                      precision    recall  f1-score   support

      chocolate_cake       1.00      1.00      1.00         5
        french_fries       1.00      0.88      0.93         8
           ice_cream       0.80      0.67      0.73         6
              nachos       1.00      0.20      0.33         5
          onion_ring       0.83      1.00      0.91         5
               pizza       1.00      1.00      1.00         6
              samosa       0.67      0.86      0.75         7
strawberry_shortcake       0.67      0.80      0.73         5
               tacos       0.57      0.80      0.67         5
              waffle       0.75      0.75      0.75         4

            accuracy                           0.80        56
           macro avg       0.83      0.79      0.78        56
        weighted avg       0.84      0.80      0.79        56

In [81]:
# Visualise some predictions
visualize_predictions_tl(cnn_model_mobilenet, test_generator_tl_2,model_type='mobilenet')
1/1 ━━━━━━━━━━━━━━━━━━━━ 6s 6s/step
No description has been provided for this image

Classification Report Analysis (MobileNetV3 Fine-Tuned Model)

Overall Accuracy

  • The model achieved an overall accuracy of 80% on the test set (56 images)

Class-wise Performance

  • chocolate_cake: Perfect precision (1.00) but recall 0.80, indicating some missed instances
  • french_fries: High precision and recall, F1-score of 0.93, indicating strong prediction confidence
  • ice_cream: Balanced precision and recall (0.83), suggesting consistent performance
  • nachos: High precision (1.00), slightly lower recall (0.80), potential false negatives
  • onion_ring & pizza: Perfect classification (precision, recall, F1 all 1.00)
  • samosa: Lower precision (0.67) but high recall (0.86), model often predicts samosa but includes some incorrect ones
  • strawberry_shortcake: F1-score of 0.60 shows the model struggles with this class, possibly due to limited or ambiguous features
  • tacos: Lowest performing class with F1-score of 0.55, indicating confusion with similar-looking items
  • waffle: Moderate F1-score (0.75), fair performance

Macro Average (Unweighted)

  • Precision: 0.83
  • Recall: 0.80
  • F1-score: 0.78

Weighted Average (Accounts for Support/Class Size)

  • Precision: 0.84
  • Recall: 0.78
  • F1-score: 0.79

Insights

  • Classes with perfect scores suggest strong feature recognition
  • Lower scores in strawberry_shortcake and tacos may need:
    • More training samples
    • Better data augmentation
    • Possible class merging or clearer labeling if visual overlap exists
  • Overall model is well balanced with only minor class-specific improvements needed

Model Selection¶

In [79]:
# Show overall refult for comparision
df1=effcinet_net_res_df.drop('support',axis=1).add_suffix("_efficentnet")
df2=mobilenet_res_df.drop('support',axis=1).add_suffix("_mobilenet")

pd.concat([df1,df2],axis=1)
Out[79]:
precision_efficentnet recall_efficentnet f1-score_efficentnet precision_mobilenet recall_mobilenet f1-score_mobilenet
chocolate_cake 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
french_fries 1.000000 1.000000 1.000000 1.000000 0.875000 0.933333
ice_cream 0.833333 0.833333 0.833333 0.800000 0.666667 0.727273
nachos 0.800000 0.800000 0.800000 1.000000 0.200000 0.333333
onion_ring 1.000000 1.000000 1.000000 0.833333 1.000000 0.909091
pizza 1.000000 1.000000 1.000000 1.000000 1.000000 1.000000
samosa 0.750000 0.857143 0.800000 0.666667 0.857143 0.750000
strawberry_shortcake 0.666667 0.800000 0.727273 0.666667 0.800000 0.727273
tacos 0.500000 0.400000 0.444444 0.571429 0.800000 0.666667
waffle 1.000000 0.750000 0.857143 0.750000 0.750000 0.750000
accuracy 0.857143 0.857143 0.857143 0.803571 0.803571 0.803571
macro avg 0.855000 0.844048 0.846219 0.828810 0.794881 0.779697
weighted avg 0.858631 0.857143 0.855128 0.836139 0.803571 0.790395

Model Comparison: EfficientNet vs MobileNetV3

Performance Summary:

  • EfficientNet

    • Test Loss: 0.3820
    • Test Accuracy: 84%
    • Weighted F1-Score: 0.858
    • Macro F1-Score: 0.845
    • Training Time: ~8 minutes 50 seconds
  • MobileNetV3

    • Test Loss: 0.5688
    • Test Accuracy: 80%
    • Weighted F1-Score: 0.78
    • Macro F1-Score: 0.79
    • Training Time: ~2 minutes 30 seconds

Observations:

  • EfficientNet shows slightly better overall metrics than MobileNetV3, with higher weighted and macro averages.

  • EfficientNet outperforms MobileNetV3 on harder classes like strawberry_shortcake and samosa.

  • MobileNet catches up in nachos, tacos, and performs equally well in pizza and onion_ring.

  • Recommendation: If your use case prioritizes consistent class-wise performance and slightly better general accuracy, choose EfficientNet. If inference speed and lighter deployment are more critical, MobileNetV3 still performs competitively.

  • EfficientNet achieved higher accuracy and F1-scores compared to MobileNetV3, indicating better classification performance across most classes.

  • However, EfficientNet took significantly longer to train (~8 mins 50 secs) due to its deeper architecture and more parameters (20M+).

  • MobileNetV3, while slightly behind in performance, trained much faster (~2 mins 30 secs) and still achieved respectable accuracy and F1-scores.

  • This makes MobileNetV3 more suitable for real-time or resource-constrained environments, where training time or model size is critical.

  • On the other hand, EfficientNet is better suited for scenarios where higher accuracy is prioritized over speed or computational cost.

Object Detection¶

Needed as sometimes collab has updated package which fails to have selecetive search¶

In [ ]:
!pip uninstall -y opencv-python opencv-contrib-python numpy
!pip install numpy==1.26.4
!pip install opencv-contrib-python==4.8.0.76
Found existing installation: opencv-python 4.11.0.86
Uninstalling opencv-python-4.11.0.86:
  Successfully uninstalled opencv-python-4.11.0.86
Found existing installation: opencv-contrib-python 4.11.0.86
Uninstalling opencv-contrib-python-4.11.0.86:
  Successfully uninstalled opencv-contrib-python-4.11.0.86
Found existing installation: numpy 2.0.2
Uninstalling numpy-2.0.2:
  Successfully uninstalled numpy-2.0.2
Collecting numpy==1.26.4
  Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (61 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 61.0/61.0 kB 1.9 MB/s eta 0:00:00
Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (18.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 18.3/18.3 MB 36.9 MB/s eta 0:00:00
Installing collected packages: numpy
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
dopamine-rl 4.1.2 requires opencv-python>=3.4.8.29, which is not installed.
thinc 8.3.6 requires numpy<3.0.0,>=2.0.0, but you have numpy 1.26.4 which is incompatible.
Successfully installed numpy-1.26.4
Collecting opencv-contrib-python==4.8.0.76
  Downloading opencv_contrib_python-4.8.0.76-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.metadata (19 kB)
Requirement already satisfied: numpy>=1.21.2 in /usr/local/lib/python3.11/dist-packages (from opencv-contrib-python==4.8.0.76) (1.26.4)
Downloading opencv_contrib_python-4.8.0.76-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (67.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.8/67.8 MB 13.3 MB/s eta 0:00:00
Installing collected packages: opencv-contrib-python
Successfully installed opencv-contrib-python-4.8.0.76
In [ ]:
!pip install ultralytics
Collecting ultralytics
  Downloading ultralytics-8.3.155-py3-none-any.whl.metadata (37 kB)
Requirement already satisfied: numpy>=1.23.0 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (2.0.2)
Requirement already satisfied: matplotlib>=3.3.0 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (3.10.0)
Requirement already satisfied: opencv-python>=4.6.0 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (4.11.0.86)
Requirement already satisfied: pillow>=7.1.2 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (11.2.1)
Requirement already satisfied: pyyaml>=5.3.1 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (6.0.2)
Requirement already satisfied: requests>=2.23.0 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (2.32.3)
Requirement already satisfied: scipy>=1.4.1 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (1.15.3)
Requirement already satisfied: torch>=1.8.0 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (2.6.0+cu124)
Requirement already satisfied: torchvision>=0.9.0 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (0.21.0+cu124)
Requirement already satisfied: tqdm>=4.64.0 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (4.67.1)
Requirement already satisfied: psutil in /usr/local/lib/python3.11/dist-packages (from ultralytics) (5.9.5)
Requirement already satisfied: py-cpuinfo in /usr/local/lib/python3.11/dist-packages (from ultralytics) (9.0.0)
Requirement already satisfied: pandas>=1.1.4 in /usr/local/lib/python3.11/dist-packages (from ultralytics) (2.2.2)
Collecting ultralytics-thop>=2.0.0 (from ultralytics)
  Downloading ultralytics_thop-2.0.14-py3-none-any.whl.metadata (9.4 kB)
Requirement already satisfied: contourpy>=1.0.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.0->ultralytics) (1.3.2)
Requirement already satisfied: cycler>=0.10 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.0->ultralytics) (0.12.1)
Requirement already satisfied: fonttools>=4.22.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.0->ultralytics) (4.58.1)
Requirement already satisfied: kiwisolver>=1.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.0->ultralytics) (1.4.8)
Requirement already satisfied: packaging>=20.0 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.0->ultralytics) (24.2)
Requirement already satisfied: pyparsing>=2.3.1 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.0->ultralytics) (3.2.3)
Requirement already satisfied: python-dateutil>=2.7 in /usr/local/lib/python3.11/dist-packages (from matplotlib>=3.3.0->ultralytics) (2.9.0.post0)
Requirement already satisfied: pytz>=2020.1 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.1.4->ultralytics) (2025.2)
Requirement already satisfied: tzdata>=2022.7 in /usr/local/lib/python3.11/dist-packages (from pandas>=1.1.4->ultralytics) (2025.2)
Requirement already satisfied: charset-normalizer<4,>=2 in /usr/local/lib/python3.11/dist-packages (from requests>=2.23.0->ultralytics) (3.4.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.11/dist-packages (from requests>=2.23.0->ultralytics) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.11/dist-packages (from requests>=2.23.0->ultralytics) (2.4.0)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.11/dist-packages (from requests>=2.23.0->ultralytics) (2025.4.26)
Requirement already satisfied: filelock in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (3.18.0)
Requirement already satisfied: typing-extensions>=4.10.0 in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (4.14.0)
Requirement already satisfied: networkx in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (3.5)
Requirement already satisfied: jinja2 in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (3.1.6)
Requirement already satisfied: fsspec in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (2025.3.2)
Collecting nvidia-cuda-nvrtc-cu12==12.4.127 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-runtime-cu12==12.4.127 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cuda-cupti-cu12==12.4.127 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cudnn-cu12==9.1.0.70 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cublas-cu12==12.4.5.8 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cufft-cu12==11.2.1.3 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-curand-cu12==10.3.5.147 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Collecting nvidia-cusolver-cu12==11.6.1.9 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Collecting nvidia-cusparse-cu12==12.3.1.170 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl.metadata (1.6 kB)
Requirement already satisfied: nvidia-cusparselt-cu12==0.6.2 in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (0.6.2)
Requirement already satisfied: nvidia-nccl-cu12==2.21.5 in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (2.21.5)
Requirement already satisfied: nvidia-nvtx-cu12==12.4.127 in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (12.4.127)
Collecting nvidia-nvjitlink-cu12==12.4.127 (from torch>=1.8.0->ultralytics)
  Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl.metadata (1.5 kB)
Requirement already satisfied: triton==3.2.0 in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (3.2.0)
Requirement already satisfied: sympy==1.13.1 in /usr/local/lib/python3.11/dist-packages (from torch>=1.8.0->ultralytics) (1.13.1)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in /usr/local/lib/python3.11/dist-packages (from sympy==1.13.1->torch>=1.8.0->ultralytics) (1.3.0)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.11/dist-packages (from python-dateutil>=2.7->matplotlib>=3.3.0->ultralytics) (1.17.0)
Requirement already satisfied: MarkupSafe>=2.0 in /usr/local/lib/python3.11/dist-packages (from jinja2->torch>=1.8.0->ultralytics) (3.0.2)
Downloading ultralytics-8.3.155-py3-none-any.whl (1.0 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.0/1.0 MB 27.1 MB/s eta 0:00:00
Downloading nvidia_cublas_cu12-12.4.5.8-py3-none-manylinux2014_x86_64.whl (363.4 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 363.4/363.4 MB 1.2 MB/s eta 0:00:00
Downloading nvidia_cuda_cupti_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (13.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 13.8/13.8 MB 119.4 MB/s eta 0:00:00
Downloading nvidia_cuda_nvrtc_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (24.6 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 24.6/24.6 MB 89.4 MB/s eta 0:00:00
Downloading nvidia_cuda_runtime_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (883 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 883.7/883.7 kB 62.1 MB/s eta 0:00:00
Downloading nvidia_cudnn_cu12-9.1.0.70-py3-none-manylinux2014_x86_64.whl (664.8 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 664.8/664.8 MB 2.4 MB/s eta 0:00:00
Downloading nvidia_cufft_cu12-11.2.1.3-py3-none-manylinux2014_x86_64.whl (211.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 211.5/211.5 MB 6.0 MB/s eta 0:00:00
Downloading nvidia_curand_cu12-10.3.5.147-py3-none-manylinux2014_x86_64.whl (56.3 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.3/56.3 MB 12.7 MB/s eta 0:00:00
Downloading nvidia_cusolver_cu12-11.6.1.9-py3-none-manylinux2014_x86_64.whl (127.9 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 127.9/127.9 MB 9.4 MB/s eta 0:00:00
Downloading nvidia_cusparse_cu12-12.3.1.170-py3-none-manylinux2014_x86_64.whl (207.5 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 207.5/207.5 MB 6.1 MB/s eta 0:00:00
Downloading nvidia_nvjitlink_cu12-12.4.127-py3-none-manylinux2014_x86_64.whl (21.1 MB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 21.1/21.1 MB 94.9 MB/s eta 0:00:00
Downloading ultralytics_thop-2.0.14-py3-none-any.whl (26 kB)
Installing collected packages: nvidia-nvjitlink-cu12, nvidia-curand-cu12, nvidia-cufft-cu12, nvidia-cuda-runtime-cu12, nvidia-cuda-nvrtc-cu12, nvidia-cuda-cupti-cu12, nvidia-cublas-cu12, nvidia-cusparse-cu12, nvidia-cudnn-cu12, nvidia-cusolver-cu12, ultralytics-thop, ultralytics
  Attempting uninstall: nvidia-nvjitlink-cu12
    Found existing installation: nvidia-nvjitlink-cu12 12.5.82
    Uninstalling nvidia-nvjitlink-cu12-12.5.82:
      Successfully uninstalled nvidia-nvjitlink-cu12-12.5.82
  Attempting uninstall: nvidia-curand-cu12
    Found existing installation: nvidia-curand-cu12 10.3.6.82
    Uninstalling nvidia-curand-cu12-10.3.6.82:
      Successfully uninstalled nvidia-curand-cu12-10.3.6.82
  Attempting uninstall: nvidia-cufft-cu12
    Found existing installation: nvidia-cufft-cu12 11.2.3.61
    Uninstalling nvidia-cufft-cu12-11.2.3.61:
      Successfully uninstalled nvidia-cufft-cu12-11.2.3.61
  Attempting uninstall: nvidia-cuda-runtime-cu12
    Found existing installation: nvidia-cuda-runtime-cu12 12.5.82
    Uninstalling nvidia-cuda-runtime-cu12-12.5.82:
      Successfully uninstalled nvidia-cuda-runtime-cu12-12.5.82
  Attempting uninstall: nvidia-cuda-nvrtc-cu12
    Found existing installation: nvidia-cuda-nvrtc-cu12 12.5.82
    Uninstalling nvidia-cuda-nvrtc-cu12-12.5.82:
      Successfully uninstalled nvidia-cuda-nvrtc-cu12-12.5.82
  Attempting uninstall: nvidia-cuda-cupti-cu12
    Found existing installation: nvidia-cuda-cupti-cu12 12.5.82
    Uninstalling nvidia-cuda-cupti-cu12-12.5.82:
      Successfully uninstalled nvidia-cuda-cupti-cu12-12.5.82
  Attempting uninstall: nvidia-cublas-cu12
    Found existing installation: nvidia-cublas-cu12 12.5.3.2
    Uninstalling nvidia-cublas-cu12-12.5.3.2:
      Successfully uninstalled nvidia-cublas-cu12-12.5.3.2
  Attempting uninstall: nvidia-cusparse-cu12
    Found existing installation: nvidia-cusparse-cu12 12.5.1.3
    Uninstalling nvidia-cusparse-cu12-12.5.1.3:
      Successfully uninstalled nvidia-cusparse-cu12-12.5.1.3
  Attempting uninstall: nvidia-cudnn-cu12
    Found existing installation: nvidia-cudnn-cu12 9.3.0.75
    Uninstalling nvidia-cudnn-cu12-9.3.0.75:
      Successfully uninstalled nvidia-cudnn-cu12-9.3.0.75
  Attempting uninstall: nvidia-cusolver-cu12
    Found existing installation: nvidia-cusolver-cu12 11.6.3.83
    Uninstalling nvidia-cusolver-cu12-11.6.3.83:
      Successfully uninstalled nvidia-cusolver-cu12-11.6.3.83
Successfully installed nvidia-cublas-cu12-12.4.5.8 nvidia-cuda-cupti-cu12-12.4.127 nvidia-cuda-nvrtc-cu12-12.4.127 nvidia-cuda-runtime-cu12-12.4.127 nvidia-cudnn-cu12-9.1.0.70 nvidia-cufft-cu12-11.2.1.3 nvidia-curand-cu12-10.3.5.147 nvidia-cusolver-cu12-11.6.1.9 nvidia-cusparse-cu12-12.3.1.170 nvidia-nvjitlink-cu12-12.4.127 ultralytics-8.3.155 ultralytics-thop-2.0.14
In [ ]:
import os
import numpy as np                                                                               # Importing numpy for Matrix Operations
import pandas as pd                                                                              # Importing pandas to read CSV files
import matplotlib.pyplot as plt                                                                  # Importting matplotlib for Plotting and visualizing images
import math                                                                                      # Importing math module to perform mathematical operations
import cv2                                                                                       # Importing openCV for image processing
import seaborn as sns                                                                            # Importing seaborn to plot graphs
from collections import defaultdict
import random
import shutil
import os

# Tensorflow modules
import tensorflow as tf
from sklearn.model_selection import train_test_split
from tensorflow.keras.preprocessing.image import ImageDataGenerator
from tensorflow.keras.models import Sequential # Importing the sequential module to define a sequential model
from keras.callbacks import ReduceLROnPlateau, ModelCheckpoint, EarlyStopping
from keras.layers import Dense, Dropout, Flatten, Conv2D, MaxPooling2D,MaxPool2D, GlobalAveragePooling2D, Input, BatchNormalization, Multiply, Activation
from tensorflow.keras.optimizers import Adam,SGD,Optimizer
from tensorflow.keras.utils import to_categorical


# sklearn lib
from sklearn.metrics import accuracy_score
from sklearn.metrics import confusion_matrix
from keras import backend as K
from sklearn.model_selection import train_test_split # train test split
from sklearn.preprocessing import LabelEncoder # label encoder
from sklearn.metrics import accuracy_score, classification_report

from tensorflow.keras.applications import EfficientNetB1
from tensorflow.keras.applications import MobileNetV3Large
from tensorflow.keras.models import Model
from tensorflow.keras import layers
from tensorflow.keras.applications.efficientnet import  preprocess_input
from tensorflow.keras.applications.mobilenet_v3 import preprocess_input
from sklearn.svm import LinearSVC

# tensorflow lib
import tensorflow as tf

from tqdm import tqdm
from PIL import Image

from tensorflow.keras.preprocessing.image import img_to_array

from sklearn.linear_model import Ridge
from sklearn.preprocessing import LabelEncoder
from PIL import UnidentifiedImageError
import matplotlib.patches as patches
import pickle
# pytorch
import torch
from torchvision.models.detection import fasterrcnn_resnet50_fpn
from torchvision.models.detection.faster_rcnn import FastRCNNPredictor
from torch.utils.data import Dataset
from torchvision.transforms import functional as F
import torchvision
from torchvision.models.detection.faster_rcnn import FastRCNNPredictor
from torch.utils.data import DataLoader
# Image augomomenation
import albumentations as A
from albumentations.pytorch import ToTensorV2
import shutil
import yaml
# Set seeds for reproducibility
seed_value = 42

random.seed(seed_value)
np.random.seed(seed_value)
tf.random.set_seed(seed_value)
os.environ['PYTHONHASHSEED'] = str(seed_value)
In [ ]:
# Mount Google drive
from google.colab import drive
drive.mount('/content/drive')
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
In [ ]:
# Unzip the annotated dataset
!unzip '/content/drive/MyDrive/Python Course_shared/computer Vision/annotation/Food-101-Annotated-V4.zip'
Archive:  /content/drive/MyDrive/Python Course_shared/computer Vision/annotation/Food-101-Annotated-V4.zip
replace __MACOSX/._Food-101-Annotated? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
  inflating: __MACOSX/._Food-101-Annotated  
  inflating: __MACOSX/Food-101-Annotated/._ice_cream  
  inflating: __MACOSX/Food-101-Annotated/._samosa  
  inflating: Food-101-Annotated/.DS_Store  
  inflating: __MACOSX/Food-101-Annotated/._.DS_Store  
  inflating: __MACOSX/Food-101-Annotated/._onion_ring  
  inflating: __MACOSX/Food-101-Annotated/._strawberry_shortcake  
  inflating: __MACOSX/Food-101-Annotated/._waffle  
  inflating: Food-101-Annotated/annotation_refined.csv  
  inflating: __MACOSX/Food-101-Annotated/._annotation_refined.csv  
  inflating: __MACOSX/Food-101-Annotated/._chocolate_cake  
  inflating: __MACOSX/Food-101-Annotated/._tacos  
  inflating: __MACOSX/Food-101-Annotated/._pizza  
  inflating: __MACOSX/Food-101-Annotated/._nachos  
  inflating: __MACOSX/Food-101-Annotated/._french_fries  
  inflating: Food-101-Annotated/ice_cream/85514.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._85514.jpg  
  inflating: Food-101-Annotated/ice_cream/621259.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._621259.jpg  
  inflating: Food-101-Annotated/ice_cream/1921412.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1921412.jpg  
  inflating: Food-101-Annotated/ice_cream/1176281.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1176281.jpg  
  inflating: Food-101-Annotated/ice_cream/3465698.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3465698.jpg  
  inflating: Food-101-Annotated/ice_cream/2005850.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2005850.jpg  
  inflating: Food-101-Annotated/ice_cream/2311283.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2311283.jpg  
  inflating: Food-101-Annotated/ice_cream/390886.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._390886.jpg  
  inflating: Food-101-Annotated/ice_cream/649653.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._649653.jpg  
  inflating: Food-101-Annotated/ice_cream/2862530.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2862530.jpg  
  inflating: Food-101-Annotated/ice_cream/596317.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._596317.jpg  
  inflating: Food-101-Annotated/ice_cream/1961230.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1961230.jpg  
  inflating: Food-101-Annotated/ice_cream/2752957.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2752957.jpg  
  inflating: Food-101-Annotated/ice_cream/3323080.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3323080.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._resized_images  
  inflating: Food-101-Annotated/ice_cream/995145.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._995145.jpg  
  inflating: Food-101-Annotated/ice_cream/510048.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._510048.jpg  
  inflating: Food-101-Annotated/ice_cream/660729.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._660729.jpg  
  inflating: Food-101-Annotated/ice_cream/598638.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._598638.jpg  
  inflating: Food-101-Annotated/ice_cream/2985290.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2985290.jpg  
  inflating: Food-101-Annotated/ice_cream/3384471.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3384471.jpg  
  inflating: Food-101-Annotated/ice_cream/1971651.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1971651.jpg  
  inflating: Food-101-Annotated/ice_cream/1272987.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1272987.jpg  
  inflating: Food-101-Annotated/ice_cream/1068026.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1068026.jpg  
  inflating: Food-101-Annotated/ice_cream/2139248.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2139248.jpg  
  inflating: Food-101-Annotated/ice_cream/1615718.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1615718.jpg  
  inflating: Food-101-Annotated/ice_cream/1995311.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1995311.jpg  
  inflating: Food-101-Annotated/ice_cream/2289445.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2289445.jpg  
  inflating: Food-101-Annotated/ice_cream/3518829.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3518829.jpg  
  inflating: Food-101-Annotated/ice_cream/1954378.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1954378.jpg  
  inflating: Food-101-Annotated/ice_cream/518018.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._518018.jpg  
  inflating: Food-101-Annotated/ice_cream/478897.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._478897.jpg  
  inflating: Food-101-Annotated/ice_cream/1371104.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1371104.jpg  
  inflating: Food-101-Annotated/ice_cream/1629364.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1629364.jpg  
  inflating: Food-101-Annotated/ice_cream/3758284.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3758284.jpg  
  inflating: Food-101-Annotated/ice_cream/1262551.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1262551.jpg  
  inflating: Food-101-Annotated/ice_cream/1698568.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1698568.jpg  
  inflating: Food-101-Annotated/ice_cream/1839769.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1839769.jpg  
  inflating: Food-101-Annotated/ice_cream/366955.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._366955.jpg  
  inflating: Food-101-Annotated/ice_cream/517105.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._517105.jpg  
  inflating: Food-101-Annotated/ice_cream/612548.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._612548.jpg  
  inflating: Food-101-Annotated/ice_cream/669677.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._669677.jpg  
  inflating: Food-101-Annotated/ice_cream/2948329.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._2948329.jpg  
  inflating: Food-101-Annotated/ice_cream/396427.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._396427.jpg  
  inflating: Food-101-Annotated/ice_cream/519403.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._519403.jpg  
  inflating: Food-101-Annotated/ice_cream/3838718.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3838718.jpg  
  inflating: Food-101-Annotated/ice_cream/1442308.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1442308.jpg  
  inflating: Food-101-Annotated/ice_cream/238730.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._238730.jpg  
  inflating: Food-101-Annotated/ice_cream/128941.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._128941.jpg  
  inflating: Food-101-Annotated/ice_cream/1910824.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1910824.jpg  
  inflating: Food-101-Annotated/ice_cream/3380318.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3380318.jpg  
  inflating: Food-101-Annotated/ice_cream/1303736.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._1303736.jpg  
  inflating: Food-101-Annotated/ice_cream/243829.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._243829.jpg  
  inflating: Food-101-Annotated/ice_cream/3693594.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3693594.jpg  
  inflating: Food-101-Annotated/ice_cream/3228081.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/._3228081.jpg  
  inflating: Food-101-Annotated/samosa/2302.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2302.jpg  
  inflating: Food-101-Annotated/samosa/1497664.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1497664.jpg  
  inflating: Food-101-Annotated/samosa/195766.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._195766.jpg  
  inflating: Food-101-Annotated/samosa/3478622.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3478622.jpg  
  inflating: Food-101-Annotated/samosa/2998894.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2998894.jpg  
  inflating: Food-101-Annotated/samosa/2778821.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2778821.jpg  
  inflating: Food-101-Annotated/samosa/663294.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._663294.jpg  
  inflating: Food-101-Annotated/samosa/1526132.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1526132.jpg  
  inflating: Food-101-Annotated/samosa/104322.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._104322.jpg  
  inflating: Food-101-Annotated/samosa/917040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._917040.jpg  
  inflating: Food-101-Annotated/samosa/3803813.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3803813.jpg  
  inflating: Food-101-Annotated/samosa/1189287.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1189287.jpg  
  inflating: Food-101-Annotated/samosa/1449447.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1449447.jpg  
  inflating: Food-101-Annotated/samosa/15074.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._15074.jpg  
  inflating: Food-101-Annotated/samosa/1383505.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1383505.jpg  
  inflating: Food-101-Annotated/samosa/2703502.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2703502.jpg  
  inflating: Food-101-Annotated/samosa/331119.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._331119.jpg  
  inflating: Food-101-Annotated/samosa/1982708.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1982708.jpg  
  inflating: Food-101-Annotated/samosa/1453309.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1453309.jpg  
  inflating: Food-101-Annotated/samosa/3633981.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3633981.jpg  
  inflating: Food-101-Annotated/samosa/2802920.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2802920.jpg  
  inflating: Food-101-Annotated/samosa/924149.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._924149.jpg  
  inflating: Food-101-Annotated/samosa/3011172.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3011172.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._resized_images  
  inflating: Food-101-Annotated/samosa/2189028.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2189028.jpg  
  inflating: Food-101-Annotated/samosa/3017105.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3017105.jpg  
  inflating: Food-101-Annotated/samosa/2373677.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2373677.jpg  
  inflating: Food-101-Annotated/samosa/2408934.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2408934.jpg  
  inflating: Food-101-Annotated/samosa/2040239.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2040239.jpg  
  inflating: Food-101-Annotated/samosa/3442040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3442040.jpg  
  inflating: Food-101-Annotated/samosa/3921972.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3921972.jpg  
  inflating: Food-101-Annotated/samosa/1177448.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1177448.jpg  
  inflating: Food-101-Annotated/samosa/2117161.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2117161.jpg  
  inflating: Food-101-Annotated/samosa/2072483.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2072483.jpg  
  inflating: Food-101-Annotated/samosa/1191466.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1191466.jpg  
  inflating: Food-101-Annotated/samosa/1881590.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1881590.jpg  
  inflating: Food-101-Annotated/samosa/1239544.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1239544.jpg  
  inflating: Food-101-Annotated/samosa/6119.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._6119.jpg  
  inflating: Food-101-Annotated/samosa/3397617.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3397617.jpg  
  inflating: Food-101-Annotated/samosa/2605136.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2605136.jpg  
  inflating: Food-101-Annotated/samosa/1170314.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1170314.jpg  
  inflating: Food-101-Annotated/samosa/1083263.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1083263.jpg  
  inflating: Food-101-Annotated/samosa/918899.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._918899.jpg  
  inflating: Food-101-Annotated/samosa/1917898.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1917898.jpg  
  inflating: Food-101-Annotated/samosa/1416302.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1416302.jpg  
  inflating: Food-101-Annotated/samosa/2095432.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2095432.jpg  
  inflating: Food-101-Annotated/samosa/3436247.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3436247.jpg  
  inflating: Food-101-Annotated/samosa/862501.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._862501.jpg  
  inflating: Food-101-Annotated/samosa/1526228.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1526228.jpg  
  inflating: Food-101-Annotated/samosa/3604106.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3604106.jpg  
  inflating: Food-101-Annotated/samosa/2129469.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2129469.jpg  
  inflating: Food-101-Annotated/samosa/674960.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._674960.jpg  
  inflating: Food-101-Annotated/samosa/672929.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._672929.jpg  
  inflating: Food-101-Annotated/samosa/704897.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._704897.jpg  
  inflating: Food-101-Annotated/samosa/942933.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._942933.jpg  
  inflating: Food-101-Annotated/samosa/1939527.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1939527.jpg  
  inflating: Food-101-Annotated/samosa/328693.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._328693.jpg  
  inflating: Food-101-Annotated/samosa/1249361.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1249361.jpg  
  inflating: Food-101-Annotated/samosa/1750149.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1750149.jpg  
  inflating: Food-101-Annotated/samosa/68911.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._68911.jpg  
  inflating: Food-101-Annotated/samosa/1539989.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1539989.jpg  
  inflating: Food-101-Annotated/samosa/1460553.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1460553.jpg  
  inflating: Food-101-Annotated/samosa/1751695.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1751695.jpg  
  inflating: Food-101-Annotated/samosa/2855237.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2855237.jpg  
  inflating: Food-101-Annotated/samosa/1444587.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1444587.jpg  
  inflating: Food-101-Annotated/samosa/3470729.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3470729.jpg  
  inflating: Food-101-Annotated/samosa/261040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._261040.jpg  
  inflating: Food-101-Annotated/samosa/62383.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._62383.jpg  
  inflating: Food-101-Annotated/samosa/2348924.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._2348924.jpg  
  inflating: Food-101-Annotated/samosa/3882056.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._3882056.jpg  
  inflating: Food-101-Annotated/samosa/1499692.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._1499692.jpg  
  inflating: Food-101-Annotated/samosa/406322.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/._406322.jpg  
  inflating: Food-101-Annotated/onion_ring/192753.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._192753.jpg  
  inflating: Food-101-Annotated/onion_ring/3578344.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3578344.jpg  
  inflating: Food-101-Annotated/onion_ring/1128896.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1128896.jpg  
  inflating: Food-101-Annotated/onion_ring/933681.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._933681.jpg  
  inflating: Food-101-Annotated/onion_ring/2808504.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2808504.jpg  
  inflating: Food-101-Annotated/onion_ring/1683330.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1683330.jpg  
  inflating: Food-101-Annotated/onion_ring/2212599.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2212599.jpg  
  inflating: Food-101-Annotated/onion_ring/801386.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._801386.jpg  
  inflating: Food-101-Annotated/onion_ring/1620661.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1620661.jpg  
  inflating: Food-101-Annotated/onion_ring/437727.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._437727.jpg  
  inflating: Food-101-Annotated/onion_ring/82479.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._82479.jpg  
  inflating: Food-101-Annotated/onion_ring/2135266.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2135266.jpg  
  inflating: Food-101-Annotated/onion_ring/1836694.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1836694.jpg  
  inflating: Food-101-Annotated/onion_ring/2857672.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2857672.jpg  
  inflating: Food-101-Annotated/onion_ring/1752491.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1752491.jpg  
  inflating: Food-101-Annotated/onion_ring/1466149.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1466149.jpg  
  inflating: Food-101-Annotated/onion_ring/2561175.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2561175.jpg  
  inflating: Food-101-Annotated/onion_ring/3225322.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3225322.jpg  
  inflating: Food-101-Annotated/onion_ring/852347.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._852347.jpg  
  inflating: Food-101-Annotated/onion_ring/3748254.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3748254.jpg  
  inflating: Food-101-Annotated/onion_ring/2437711.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2437711.jpg  
  inflating: Food-101-Annotated/onion_ring/2959045.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2959045.jpg  
  inflating: Food-101-Annotated/onion_ring/3324385.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3324385.jpg  
  inflating: Food-101-Annotated/onion_ring/382380.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._382380.jpg  
  inflating: Food-101-Annotated/onion_ring/3783332.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3783332.jpg  
  inflating: Food-101-Annotated/onion_ring/784882.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._784882.jpg  
  inflating: Food-101-Annotated/onion_ring/2411104.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2411104.jpg  
  inflating: Food-101-Annotated/onion_ring/3830118.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3830118.jpg  
  inflating: Food-101-Annotated/onion_ring/944880.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._944880.jpg  
  inflating: Food-101-Annotated/onion_ring/3260503.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3260503.jpg  
  inflating: Food-101-Annotated/onion_ring/3629928.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3629928.jpg  
  inflating: Food-101-Annotated/onion_ring/1874873.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1874873.jpg  
  inflating: Food-101-Annotated/onion_ring/2527908.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2527908.jpg  
  inflating: Food-101-Annotated/onion_ring/3021096.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3021096.jpg  
  inflating: Food-101-Annotated/onion_ring/54685.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._54685.jpg  
  inflating: Food-101-Annotated/onion_ring/2463146.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2463146.jpg  
  inflating: Food-101-Annotated/onion_ring/538182.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._538182.jpg  
  inflating: Food-101-Annotated/onion_ring/2315039.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2315039.jpg  
  inflating: Food-101-Annotated/onion_ring/546460.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._546460.jpg  
  inflating: Food-101-Annotated/onion_ring/920620.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._920620.jpg  
  inflating: Food-101-Annotated/onion_ring/3715093.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3715093.jpg  
  inflating: Food-101-Annotated/onion_ring/3547368.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3547368.jpg  
  inflating: Food-101-Annotated/onion_ring/781621.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._781621.jpg  
  inflating: Food-101-Annotated/onion_ring/1408748.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1408748.jpg  
  inflating: Food-101-Annotated/onion_ring/3352070.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._3352070.jpg  
  inflating: Food-101-Annotated/onion_ring/177511.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._177511.jpg  
  inflating: Food-101-Annotated/onion_ring/2829934.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._2829934.jpg  
  inflating: Food-101-Annotated/onion_ring/769992.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._769992.jpg  
  inflating: Food-101-Annotated/onion_ring/500381.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._500381.jpg  
  inflating: Food-101-Annotated/onion_ring/1850769.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1850769.jpg  
  inflating: Food-101-Annotated/onion_ring/1511961.jpg  
  inflating: __MACOSX/Food-101-Annotated/onion_ring/._1511961.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3705276.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3705276.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/57863.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._57863.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/16590.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._16590.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/977955.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._977955.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1031243.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1031243.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2327490.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2327490.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2808886.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2808886.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3916946.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3916946.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/97738.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._97738.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3430071.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3430071.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/80669.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._80669.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1195849.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1195849.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2965819.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2965819.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/101165.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._101165.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3690192.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3690192.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2561373.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2561373.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3843129.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3843129.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1848361.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1848361.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/463111.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._463111.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1311207.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1311207.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1916999.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1916999.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1882254.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1882254.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2226679.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2226679.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3729912.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3729912.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1881023.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1881023.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1866686.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1866686.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/724604.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._724604.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/713321.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._713321.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/263151.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._263151.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3379442.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3379442.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/702201.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._702201.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3789427.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3789427.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/57777.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._57777.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1845065.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1845065.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1342090.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1342090.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3346370.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3346370.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1758516.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1758516.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/873051.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._873051.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2745798.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2745798.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/163206.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._163206.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/730404.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._730404.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2856465.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2856465.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3541054.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3541054.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1640574.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1640574.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1957762.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1957762.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/1568443.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._1568443.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/683408.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._683408.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/3835788.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._3835788.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/2180049.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._2180049.jpg  
  inflating: Food-101-Annotated/strawberry_shortcake/953437.jpg  
  inflating: __MACOSX/Food-101-Annotated/strawberry_shortcake/._953437.jpg  
  inflating: Food-101-Annotated/waffle/1865250.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1865250.jpg  
  inflating: Food-101-Annotated/waffle/1564248.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1564248.jpg  
  inflating: Food-101-Annotated/waffle/70789.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._70789.jpg  
  inflating: Food-101-Annotated/waffle/2131845.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2131845.jpg  
  inflating: Food-101-Annotated/waffle/96181.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._96181.jpg  
  inflating: Food-101-Annotated/waffle/903753.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._903753.jpg  
  inflating: Food-101-Annotated/waffle/3308951.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3308951.jpg  
  inflating: Food-101-Annotated/waffle/1775307.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1775307.jpg  
  inflating: Food-101-Annotated/waffle/1852612.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1852612.jpg  
  inflating: Food-101-Annotated/waffle/3189212.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3189212.jpg  
  inflating: Food-101-Annotated/waffle/3872190.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3872190.jpg  
  inflating: Food-101-Annotated/waffle/520878.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._520878.jpg  
  inflating: Food-101-Annotated/waffle/2389143.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2389143.jpg  
  inflating: Food-101-Annotated/waffle/1397605.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1397605.jpg  
  inflating: Food-101-Annotated/waffle/2177928.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2177928.jpg  
  inflating: Food-101-Annotated/waffle/910563.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._910563.jpg  
  inflating: Food-101-Annotated/waffle/3460768.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3460768.jpg  
  inflating: Food-101-Annotated/waffle/30536.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._30536.jpg  
  inflating: Food-101-Annotated/waffle/76239.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._76239.jpg  
  inflating: Food-101-Annotated/waffle/452045.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._452045.jpg  
  inflating: Food-101-Annotated/waffle/1509171.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1509171.jpg  
  inflating: Food-101-Annotated/waffle/712973.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._712973.jpg  
  inflating: Food-101-Annotated/waffle/2139248.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2139248.jpg  
  inflating: Food-101-Annotated/waffle/2999331.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2999331.jpg  
  inflating: Food-101-Annotated/waffle/2873703.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2873703.jpg  
  inflating: Food-101-Annotated/waffle/2392474.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2392474.jpg  
  inflating: Food-101-Annotated/waffle/1245873.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1245873.jpg  
  inflating: Food-101-Annotated/waffle/119316.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._119316.jpg  
  inflating: Food-101-Annotated/waffle/88648.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._88648.jpg  
  inflating: Food-101-Annotated/waffle/2058733.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2058733.jpg  
  inflating: Food-101-Annotated/waffle/708688.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._708688.jpg  
  inflating: Food-101-Annotated/waffle/1595187.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1595187.jpg  
  inflating: Food-101-Annotated/waffle/3260936.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3260936.jpg  
  inflating: Food-101-Annotated/waffle/1698568.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1698568.jpg  
  inflating: Food-101-Annotated/waffle/789971.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._789971.jpg  
  inflating: Food-101-Annotated/waffle/2267408.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2267408.jpg  
  inflating: Food-101-Annotated/waffle/1716839.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1716839.jpg  
  inflating: Food-101-Annotated/waffle/12160.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._12160.jpg  
  inflating: Food-101-Annotated/waffle/3014576.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3014576.jpg  
  inflating: Food-101-Annotated/waffle/654779.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._654779.jpg  
  inflating: Food-101-Annotated/waffle/2135581.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2135581.jpg  
  inflating: Food-101-Annotated/waffle/1231392.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1231392.jpg  
  inflating: Food-101-Annotated/waffle/3402541.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3402541.jpg  
  inflating: Food-101-Annotated/waffle/863723.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._863723.jpg  
  inflating: Food-101-Annotated/waffle/1462386.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1462386.jpg  
  inflating: Food-101-Annotated/waffle/3598283.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3598283.jpg  
  inflating: Food-101-Annotated/waffle/3091708.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._3091708.jpg  
  inflating: Food-101-Annotated/waffle/1303736.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._1303736.jpg  
  inflating: Food-101-Annotated/waffle/41942.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._41942.jpg  
  inflating: Food-101-Annotated/waffle/2364175.jpg  
  inflating: __MACOSX/Food-101-Annotated/waffle/._2364175.jpg  
  inflating: Food-101-Annotated/chocolate_cake/108268.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._108268.jpg  
  inflating: Food-101-Annotated/chocolate_cake/683202.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._683202.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3125883.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3125883.jpg  
  inflating: Food-101-Annotated/chocolate_cake/568408.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._568408.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2547504.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2547504.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3555773.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3555773.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1426052.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1426052.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1393886.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1393886.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3722155.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3722155.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1672668.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1672668.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3102746.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3102746.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1074446.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1074446.jpg  
  inflating: Food-101-Annotated/chocolate_cake/314103.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._314103.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3493807.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3493807.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2408310.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2408310.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2216361.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2216361.jpg  
  inflating: Food-101-Annotated/chocolate_cake/391530.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._391530.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3246292.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3246292.jpg  
  inflating: Food-101-Annotated/chocolate_cake/543149.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._543149.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1864488.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1864488.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2728721.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2728721.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1012759.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1012759.jpg  
  inflating: Food-101-Annotated/chocolate_cake/440860.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._440860.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3558621.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3558621.jpg  
  inflating: Food-101-Annotated/chocolate_cake/662729.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._662729.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2933079.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2933079.jpg  
  inflating: Food-101-Annotated/chocolate_cake/821815.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._821815.jpg  
  inflating: Food-101-Annotated/chocolate_cake/929332.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._929332.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3515934.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3515934.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1363933.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1363933.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3152730.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3152730.jpg  
  inflating: Food-101-Annotated/chocolate_cake/554548.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._554548.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2437841.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2437841.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2326455.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2326455.jpg  
  inflating: Food-101-Annotated/chocolate_cake/333377.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._333377.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2432478.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2432478.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3440460.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3440460.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1395253.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1395253.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1779025.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1779025.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1747450.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1747450.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3047338.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3047338.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3514876.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3514876.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2721988.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2721988.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2331005.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2331005.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3832397.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3832397.jpg  
  inflating: Food-101-Annotated/chocolate_cake/397896.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._397896.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3380282.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3380282.jpg  
  inflating: Food-101-Annotated/chocolate_cake/2016214.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._2016214.jpg  
  inflating: Food-101-Annotated/chocolate_cake/1240545.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._1240545.jpg  
  inflating: Food-101-Annotated/chocolate_cake/615682.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._615682.jpg  
  inflating: Food-101-Annotated/chocolate_cake/3581921.jpg  
  inflating: __MACOSX/Food-101-Annotated/chocolate_cake/._3581921.jpg  
  inflating: Food-101-Annotated/tacos/73043.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._73043.jpg  
  inflating: Food-101-Annotated/tacos/20787.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._20787.jpg  
  inflating: Food-101-Annotated/tacos/476796.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._476796.jpg  
  inflating: Food-101-Annotated/tacos/6229.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._6229.jpg  
  inflating: Food-101-Annotated/tacos/63928.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._63928.jpg  
  inflating: Food-101-Annotated/tacos/17688.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._17688.jpg  
  inflating: Food-101-Annotated/tacos/123968.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._123968.jpg  
  inflating: Food-101-Annotated/tacos/36081.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._36081.jpg  
  inflating: Food-101-Annotated/tacos/144852.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._144852.jpg  
  inflating: Food-101-Annotated/tacos/616584.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._616584.jpg  
  inflating: Food-101-Annotated/tacos/48840.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._48840.jpg  
  inflating: Food-101-Annotated/tacos/45035.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._45035.jpg  
  inflating: Food-101-Annotated/tacos/17969.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._17969.jpg  
  inflating: Food-101-Annotated/tacos/448340.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._448340.jpg  
  inflating: Food-101-Annotated/tacos/87767.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._87767.jpg  
  inflating: Food-101-Annotated/tacos/48506.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._48506.jpg  
  inflating: Food-101-Annotated/tacos/49803.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._49803.jpg  
  inflating: Food-101-Annotated/tacos/74573.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._74573.jpg  
  inflating: Food-101-Annotated/tacos/20532.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._20532.jpg  
  inflating: Food-101-Annotated/tacos/83935.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._83935.jpg  
  inflating: Food-101-Annotated/tacos/58856.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._58856.jpg  
  inflating: Food-101-Annotated/tacos/20087.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._20087.jpg  
  inflating: Food-101-Annotated/tacos/5813.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._5813.jpg  
  inflating: Food-101-Annotated/tacos/128139.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._128139.jpg  
  inflating: Food-101-Annotated/tacos/125623.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._125623.jpg  
  inflating: Food-101-Annotated/tacos/60069.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._60069.jpg  
  inflating: Food-101-Annotated/tacos/46246.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._46246.jpg  
  inflating: Food-101-Annotated/tacos/127545.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._127545.jpg  
  inflating: Food-101-Annotated/tacos/54252.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._54252.jpg  
  inflating: Food-101-Annotated/tacos/56337.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._56337.jpg  
  inflating: Food-101-Annotated/tacos/121283.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._121283.jpg  
  inflating: Food-101-Annotated/tacos/131906.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._131906.jpg  
  inflating: Food-101-Annotated/tacos/2030.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._2030.jpg  
  inflating: Food-101-Annotated/tacos/27330.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._27330.jpg  
  inflating: Food-101-Annotated/tacos/470015.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._470015.jpg  
  inflating: Food-101-Annotated/tacos/54685.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._54685.jpg  
  inflating: Food-101-Annotated/tacos/108945.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._108945.jpg  
  inflating: Food-101-Annotated/tacos/122809.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._122809.jpg  
  inflating: Food-101-Annotated/tacos/91964.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._91964.jpg  
  inflating: Food-101-Annotated/tacos/63099.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._63099.jpg  
  inflating: Food-101-Annotated/tacos/44578.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._44578.jpg  
  inflating: Food-101-Annotated/tacos/24844.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._24844.jpg  
  inflating: Food-101-Annotated/tacos/108529.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._108529.jpg  
  inflating: Food-101-Annotated/tacos/85137.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._85137.jpg  
  inflating: Food-101-Annotated/tacos/8350.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._8350.jpg  
  inflating: Food-101-Annotated/tacos/21440.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._21440.jpg  
  inflating: Food-101-Annotated/tacos/25784.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._25784.jpg  
  inflating: Food-101-Annotated/tacos/132307.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._132307.jpg  
  inflating: Food-101-Annotated/tacos/80931.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._80931.jpg  
  inflating: Food-101-Annotated/tacos/26489.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._26489.jpg  
  inflating: Food-101-Annotated/tacos/53758.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._53758.jpg  
  inflating: Food-101-Annotated/tacos/75990.jpg  
  inflating: __MACOSX/Food-101-Annotated/tacos/._75990.jpg  
  inflating: Food-101-Annotated/pizza/384215.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._384215.jpg  
  inflating: Food-101-Annotated/pizza/89892.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._89892.jpg  
  inflating: Food-101-Annotated/pizza/1499661.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1499661.jpg  
  inflating: Food-101-Annotated/pizza/1325918.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1325918.jpg  
  inflating: Food-101-Annotated/pizza/1504421.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1504421.jpg  
  inflating: Food-101-Annotated/pizza/951953.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._951953.jpg  
  inflating: Food-101-Annotated/pizza/63480.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._63480.jpg  
  inflating: Food-101-Annotated/pizza/299535.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._299535.jpg  
  inflating: Food-101-Annotated/pizza/1717790.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1717790.jpg  
  inflating: Food-101-Annotated/pizza/614236.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._614236.jpg  
  inflating: Food-101-Annotated/pizza/124815.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._124815.jpg  
  inflating: Food-101-Annotated/pizza/3785667.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3785667.jpg  
  inflating: Food-101-Annotated/pizza/317861.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._317861.jpg  
  inflating: Food-101-Annotated/pizza/1026922.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1026922.jpg  
  inflating: Food-101-Annotated/pizza/966644.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._966644.jpg  
  inflating: Food-101-Annotated/pizza/1898723.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1898723.jpg  
  inflating: Food-101-Annotated/pizza/324942.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._324942.jpg  
  inflating: Food-101-Annotated/pizza/168879.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._168879.jpg  
  inflating: Food-101-Annotated/pizza/1289139.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1289139.jpg  
  inflating: Food-101-Annotated/pizza/34632.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._34632.jpg  
  inflating: Food-101-Annotated/pizza/212995.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._212995.jpg  
  inflating: Food-101-Annotated/pizza/3822139.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3822139.jpg  
  inflating: Food-101-Annotated/pizza/148765.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._148765.jpg  
  inflating: Food-101-Annotated/pizza/899959.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._899959.jpg  
  inflating: Food-101-Annotated/pizza/741491.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._741491.jpg  
  inflating: Food-101-Annotated/pizza/83538.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._83538.jpg  
  inflating: Food-101-Annotated/pizza/1897129.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1897129.jpg  
  inflating: Food-101-Annotated/pizza/2811032.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._2811032.jpg  
  inflating: Food-101-Annotated/pizza/514014.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._514014.jpg  
  inflating: Food-101-Annotated/pizza/1836888.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1836888.jpg  
  inflating: Food-101-Annotated/pizza/2760984.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._2760984.jpg  
  inflating: Food-101-Annotated/pizza/1600705.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1600705.jpg  
  inflating: Food-101-Annotated/pizza/896448.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._896448.jpg  
  inflating: Food-101-Annotated/pizza/1183278.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1183278.jpg  
  inflating: Food-101-Annotated/pizza/56449.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._56449.jpg  
  inflating: Food-101-Annotated/pizza/300157.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._300157.jpg  
  inflating: Food-101-Annotated/pizza/741883.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._741883.jpg  
  inflating: Food-101-Annotated/pizza/1084888.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1084888.jpg  
  inflating: Food-101-Annotated/pizza/2003290.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._2003290.jpg  
  inflating: Food-101-Annotated/pizza/228778.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._228778.jpg  
  inflating: Food-101-Annotated/pizza/702165.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._702165.jpg  
  inflating: Food-101-Annotated/pizza/723745.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._723745.jpg  
  inflating: Food-101-Annotated/pizza/1991586.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1991586.jpg  
  inflating: Food-101-Annotated/pizza/1507019.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1507019.jpg  
  inflating: Food-101-Annotated/pizza/89197.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._89197.jpg  
  inflating: Food-101-Annotated/pizza/1065078.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1065078.jpg  
  inflating: Food-101-Annotated/pizza/105910.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._105910.jpg  
  inflating: Food-101-Annotated/pizza/3264148.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3264148.jpg  
  inflating: Food-101-Annotated/pizza/3337370.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3337370.jpg  
  inflating: Food-101-Annotated/pizza/1899785.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1899785.jpg  
  inflating: Food-101-Annotated/pizza/93961.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._93961.jpg  
  inflating: Food-101-Annotated/pizza/3333459.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._3333459.jpg  
  inflating: Food-101-Annotated/pizza/53217.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._53217.jpg  
  inflating: Food-101-Annotated/pizza/1011404.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1011404.jpg  
  inflating: Food-101-Annotated/pizza/1137400.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1137400.jpg  
  inflating: Food-101-Annotated/pizza/1915343.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._1915343.jpg  
  inflating: Food-101-Annotated/pizza/2478048.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._2478048.jpg  
  inflating: Food-101-Annotated/pizza/141507.jpg  
  inflating: __MACOSX/Food-101-Annotated/pizza/._141507.jpg  
  inflating: Food-101-Annotated/nachos/3122653.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3122653.jpg  
  inflating: Food-101-Annotated/nachos/612532.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._612532.jpg  
  inflating: Food-101-Annotated/nachos/99076.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._99076.jpg  
  inflating: Food-101-Annotated/nachos/175246.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._175246.jpg  
  inflating: Food-101-Annotated/nachos/549614.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._549614.jpg  
  inflating: Food-101-Annotated/nachos/683991.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._683991.jpg  
  inflating: Food-101-Annotated/nachos/144852.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._144852.jpg  
  inflating: Food-101-Annotated/nachos/1754283.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1754283.jpg  
  inflating: Food-101-Annotated/nachos/1970937.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1970937.jpg  
  inflating: Food-101-Annotated/nachos/1232631.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1232631.jpg  
  inflating: Food-101-Annotated/nachos/900389.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._900389.jpg  
  inflating: Food-101-Annotated/nachos/54529.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._54529.jpg  
  inflating: Food-101-Annotated/nachos/699010.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._699010.jpg  
  inflating: Food-101-Annotated/nachos/2434560.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2434560.jpg  
  inflating: Food-101-Annotated/nachos/3778410.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3778410.jpg  
  inflating: Food-101-Annotated/nachos/239290.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._239290.jpg  
  inflating: Food-101-Annotated/nachos/774749.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._774749.jpg  
  inflating: Food-101-Annotated/nachos/1622013.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1622013.jpg  
  inflating: Food-101-Annotated/nachos/1577096.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1577096.jpg  
  inflating: Food-101-Annotated/nachos/3259984.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3259984.jpg  
  inflating: Food-101-Annotated/nachos/2715265.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2715265.jpg  
  inflating: Food-101-Annotated/nachos/1068026.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1068026.jpg  
  inflating: Food-101-Annotated/nachos/3714861.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3714861.jpg  
  inflating: Food-101-Annotated/nachos/208464.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._208464.jpg  
  inflating: Food-101-Annotated/nachos/1075843.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1075843.jpg  
  inflating: Food-101-Annotated/nachos/3492539.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3492539.jpg  
  inflating: Food-101-Annotated/nachos/3644462.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3644462.jpg  
  inflating: Food-101-Annotated/nachos/288930.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._288930.jpg  
  inflating: Food-101-Annotated/nachos/1149411.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1149411.jpg  
  inflating: Food-101-Annotated/nachos/1381155.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1381155.jpg  
  inflating: Food-101-Annotated/nachos/3266015.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3266015.jpg  
  inflating: Food-101-Annotated/nachos/3161098.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3161098.jpg  
  inflating: Food-101-Annotated/nachos/54252.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._54252.jpg  
  inflating: Food-101-Annotated/nachos/3817438.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3817438.jpg  
  inflating: Food-101-Annotated/nachos/500252.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._500252.jpg  
  inflating: Food-101-Annotated/nachos/376174.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._376174.jpg  
  inflating: Food-101-Annotated/nachos/3273369.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3273369.jpg  
  inflating: Food-101-Annotated/nachos/2647506.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2647506.jpg  
  inflating: Food-101-Annotated/nachos/3115939.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3115939.jpg  
  inflating: Food-101-Annotated/nachos/932678.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._932678.jpg  
  inflating: Food-101-Annotated/nachos/787394.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._787394.jpg  
  inflating: Food-101-Annotated/nachos/1890869.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._1890869.jpg  
  inflating: Food-101-Annotated/nachos/225270.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._225270.jpg  
  inflating: Food-101-Annotated/nachos/2847727.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2847727.jpg  
  inflating: Food-101-Annotated/nachos/450661.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._450661.jpg  
  inflating: Food-101-Annotated/nachos/3471051.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._3471051.jpg  
  inflating: Food-101-Annotated/nachos/209662.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._209662.jpg  
  inflating: Food-101-Annotated/nachos/462516.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._462516.jpg  
  inflating: Food-101-Annotated/nachos/2704460.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2704460.jpg  
  inflating: Food-101-Annotated/nachos/313978.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._313978.jpg  
  inflating: Food-101-Annotated/nachos/2616112.jpg  
  inflating: __MACOSX/Food-101-Annotated/nachos/._2616112.jpg  
  inflating: Food-101-Annotated/french_fries/2907806.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2907806.jpg  
  inflating: Food-101-Annotated/french_fries/2680169.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2680169.jpg  
  inflating: Food-101-Annotated/french_fries/494329.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._494329.jpg  
  inflating: Food-101-Annotated/french_fries/2056007.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2056007.jpg  
  inflating: Food-101-Annotated/french_fries/1767923.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1767923.jpg  
  inflating: Food-101-Annotated/french_fries/2550720.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2550720.jpg  
  inflating: Food-101-Annotated/french_fries/1384733.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1384733.jpg  
  inflating: Food-101-Annotated/french_fries/1531073.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1531073.jpg  
  inflating: Food-101-Annotated/french_fries/109401.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._109401.jpg  
  inflating: Food-101-Annotated/french_fries/2677445.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2677445.jpg  
  inflating: Food-101-Annotated/french_fries/3377570.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3377570.jpg  
  inflating: Food-101-Annotated/french_fries/348356.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._348356.jpg  
  inflating: Food-101-Annotated/french_fries/3049746.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3049746.jpg  
  inflating: Food-101-Annotated/french_fries/3345305.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3345305.jpg  
  inflating: Food-101-Annotated/french_fries/370151.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._370151.jpg  
  inflating: Food-101-Annotated/french_fries/338101.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._338101.jpg  
  inflating: Food-101-Annotated/french_fries/3843922.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3843922.jpg  
  inflating: Food-101-Annotated/french_fries/1199754.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1199754.jpg  
  inflating: Food-101-Annotated/french_fries/2315325.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2315325.jpg  
  inflating: Food-101-Annotated/french_fries/2696740.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2696740.jpg  
  inflating: Food-101-Annotated/french_fries/1703753.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1703753.jpg  
  inflating: Food-101-Annotated/french_fries/828160.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._828160.jpg  
  inflating: Food-101-Annotated/french_fries/2001882.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2001882.jpg  
  inflating: Food-101-Annotated/french_fries/2015613.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2015613.jpg  
  inflating: Food-101-Annotated/french_fries/3659782.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3659782.jpg  
  inflating: Food-101-Annotated/french_fries/2661646.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2661646.jpg  
  inflating: Food-101-Annotated/french_fries/1937830.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1937830.jpg  
  inflating: Food-101-Annotated/french_fries/3684873.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3684873.jpg  
  inflating: Food-101-Annotated/french_fries/2298765.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2298765.jpg  
  inflating: Food-101-Annotated/french_fries/963995.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._963995.jpg  
  inflating: Food-101-Annotated/french_fries/2331134.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2331134.jpg  
  inflating: Food-101-Annotated/french_fries/2029107.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2029107.jpg  
  inflating: Food-101-Annotated/french_fries/2371507.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2371507.jpg  
  inflating: Food-101-Annotated/french_fries/904510.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._904510.jpg  
  inflating: Food-101-Annotated/french_fries/1080215.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1080215.jpg  
  inflating: Food-101-Annotated/french_fries/3167615.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3167615.jpg  
  inflating: Food-101-Annotated/french_fries/607021.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._607021.jpg  
  inflating: Food-101-Annotated/french_fries/177372.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._177372.jpg  
  inflating: Food-101-Annotated/french_fries/1987068.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1987068.jpg  
  inflating: Food-101-Annotated/french_fries/2958833.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2958833.jpg  
  inflating: Food-101-Annotated/french_fries/1740113.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1740113.jpg  
  inflating: Food-101-Annotated/french_fries/2314805.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2314805.jpg  
  inflating: Food-101-Annotated/french_fries/2195192.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2195192.jpg  
  inflating: Food-101-Annotated/french_fries/1692647.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1692647.jpg  
  inflating: Food-101-Annotated/french_fries/2004116.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2004116.jpg  
  inflating: Food-101-Annotated/french_fries/584234.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._584234.jpg  
  inflating: Food-101-Annotated/french_fries/374001.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._374001.jpg  
  inflating: Food-101-Annotated/french_fries/531883.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._531883.jpg  
  inflating: Food-101-Annotated/french_fries/1694219.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1694219.jpg  
  inflating: Food-101-Annotated/french_fries/2077845.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2077845.jpg  
  inflating: Food-101-Annotated/french_fries/2661893.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2661893.jpg  
  inflating: Food-101-Annotated/french_fries/143158.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._143158.jpg  
  inflating: Food-101-Annotated/french_fries/2335210.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2335210.jpg  
  inflating: Food-101-Annotated/french_fries/2472499.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2472499.jpg  
  inflating: Food-101-Annotated/french_fries/3405511.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3405511.jpg  
  inflating: Food-101-Annotated/french_fries/1552191.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1552191.jpg  
  inflating: Food-101-Annotated/french_fries/566728.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._566728.jpg  
  inflating: Food-101-Annotated/french_fries/1700344.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1700344.jpg  
  inflating: Food-101-Annotated/french_fries/2229500.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2229500.jpg  
  inflating: Food-101-Annotated/french_fries/375233.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._375233.jpg  
  inflating: Food-101-Annotated/french_fries/2275484.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2275484.jpg  
  inflating: Food-101-Annotated/french_fries/2008616.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2008616.jpg  
  inflating: Food-101-Annotated/french_fries/3223529.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3223529.jpg  
  inflating: Food-101-Annotated/french_fries/2699989.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2699989.jpg  
  inflating: Food-101-Annotated/french_fries/1099260.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1099260.jpg  
  inflating: Food-101-Annotated/french_fries/353437.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._353437.jpg  
  inflating: Food-101-Annotated/french_fries/2001959.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2001959.jpg  
  inflating: Food-101-Annotated/french_fries/1369116.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1369116.jpg  
  inflating: Food-101-Annotated/french_fries/1165966.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1165966.jpg  
  inflating: Food-101-Annotated/french_fries/622359.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._622359.jpg  
  inflating: Food-101-Annotated/french_fries/2371960.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2371960.jpg  
  inflating: Food-101-Annotated/french_fries/1370900.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1370900.jpg  
  inflating: Food-101-Annotated/french_fries/1150103.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1150103.jpg  
  inflating: Food-101-Annotated/french_fries/557390.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._557390.jpg  
  inflating: Food-101-Annotated/french_fries/3711232.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3711232.jpg  
  inflating: Food-101-Annotated/french_fries/2856271.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._2856271.jpg  
  inflating: Food-101-Annotated/french_fries/1438129.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._1438129.jpg  
  inflating: Food-101-Annotated/french_fries/3919465.jpg  
  inflating: __MACOSX/Food-101-Annotated/french_fries/._3919465.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/85514.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._85514.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/621259.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._621259.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1921412.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1921412.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1176281.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1176281.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3465698.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3465698.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2005850.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2005850.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2311283.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2311283.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/390886.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._390886.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/649653.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._649653.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2862530.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2862530.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/596317.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._596317.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1961230.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1961230.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2752957.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2752957.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3323080.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3323080.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/995145.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._995145.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/510048.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._510048.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/660729.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._660729.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/598638.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._598638.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2985290.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2985290.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3384471.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3384471.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1971651.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1971651.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1272987.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1272987.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1068026.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1068026.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2139248.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2139248.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1615718.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1615718.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1995311.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1995311.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2289445.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2289445.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3518829.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3518829.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1954378.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1954378.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/518018.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._518018.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/478897.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._478897.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1371104.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1371104.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1629364.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1629364.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3758284.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3758284.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1262551.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1262551.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1698568.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1698568.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1839769.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1839769.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/366955.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._366955.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/517105.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._517105.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/612548.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._612548.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/669677.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._669677.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/2948329.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._2948329.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/396427.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._396427.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/519403.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._519403.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3838718.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3838718.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1442308.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1442308.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/238730.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._238730.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/128941.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._128941.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1910824.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1910824.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3380318.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3380318.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/1303736.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._1303736.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/243829.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._243829.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3693594.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3693594.jpg  
  inflating: Food-101-Annotated/ice_cream/resized_images/3228081.jpg  
  inflating: __MACOSX/Food-101-Annotated/ice_cream/resized_images/._3228081.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2302.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2302.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1497664.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1497664.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/195766.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._195766.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3478622.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3478622.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2998894.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2998894.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2778821.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2778821.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/663294.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._663294.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1526132.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1526132.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/104322.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._104322.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/917040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._917040.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3803813.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3803813.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1189287.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1189287.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1449447.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1449447.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/15074.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._15074.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1383505.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1383505.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2703502.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2703502.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/331119.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._331119.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1982708.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1982708.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1453309.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1453309.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3633981.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3633981.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2802920.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2802920.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/924149.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._924149.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3011172.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3011172.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2189028.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2189028.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3017105.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3017105.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2373677.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2373677.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2408934.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2408934.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2040239.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2040239.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3442040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3442040.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3921972.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3921972.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1177448.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1177448.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2117161.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2117161.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2072483.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2072483.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1191466.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1191466.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1881590.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1881590.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1239544.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1239544.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/6119.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._6119.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3397617.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3397617.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2605136.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2605136.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1170314.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1170314.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1083263.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1083263.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/918899.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._918899.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1917898.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1917898.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1416302.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1416302.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2095432.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2095432.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3436247.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3436247.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/862501.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._862501.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1526228.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1526228.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3604106.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3604106.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2129469.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2129469.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/674960.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._674960.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/672929.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._672929.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/704897.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._704897.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/942933.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._942933.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1939527.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1939527.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/328693.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._328693.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1249361.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1249361.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1750149.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1750149.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/68911.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._68911.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1539989.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1539989.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1460553.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1460553.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1751695.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1751695.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2855237.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2855237.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1444587.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1444587.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3470729.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3470729.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/261040.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._261040.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/62383.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._62383.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/2348924.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._2348924.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/3882056.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._3882056.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/1499692.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._1499692.jpg  
  inflating: Food-101-Annotated/samosa/resized_images/406322.jpg  
  inflating: __MACOSX/Food-101-Annotated/samosa/resized_images/._406322.jpg  
In [ ]:
# base path of annotated images
base_path='Food-101-Annotated/'

Helper Functions¶

In [ ]:
def compute_iou(boxA, boxB):
    '''
    Compute Intersection over Union (IoU) between two bounding boxes.

    Args:
        boxA: List or tuple with 4 elements [x1, y1, x2, y2] for box A.
        boxB: List or tuple with 4 elements [x1, y1, x2, y2] for box B.

    Returns:
        IoU value: A float between 0 and 1 representing overlap ratio.
    '''

    # Compute coordinates of the intersection rectangle
    xA = max(boxA[0], boxB[0])  # Left
    yA = max(boxA[1], boxB[1])  # Top
    xB = min(boxA[2], boxB[2])  # Right
    yB = min(boxA[3], boxB[3])  # Bottom

    # Compute the area of intersection rectangle
    inter = max(0, xB - xA) * max(0, yB - yA)

    # Compute the area of both bounding boxes
    boxAArea = (boxA[2] - boxA[0]) * (boxA[3] - boxA[1])
    boxBArea = (boxB[2] - boxB[0]) * (boxB[3] - boxB[1])

    # Compute IoU using the formula: intersection / union
    iou = inter / float(boxAArea + boxBArea - inter + 1e-5)

    return iou
In [ ]:
def load_annotations_and_convert_yolo_bb(df, base_dir):
    '''
    Load bounding box annotations from a DataFrame and convert YOLO format to pixel coordinates.

    Args:
        df: Pandas DataFrame containing YOLO-format bounding boxes.
            Expected columns: ['image_name', 'x_center', 'y_center', 'width', 'height', 'class_name']
        base_dir: Base directory where image files are stored.

    Returns:
        boxes: Dictionary mapping image paths to a list of bounding boxes.
               Each box is represented as [xmin, ymin, xmax, ymax, class_name]
    '''

    boxes = {}

    # Iterate over each row (annotation) in the DataFrame
    for _, row in df.iterrows():
        image_path = os.path.join(base_dir, row['image_name'])

        # Initialize list of boxes for this image if not already present
        if image_path not in boxes:
            boxes[image_path] = []

        try:
            # Open image to get width and height
            image = Image.open(image_path)
            w, h = image.size
        except (FileNotFoundError, UnidentifiedImageError) as e:
            continue  # Skip this row if image is missing or unreadable

        # Extract YOLO format bounding box: center_x, center_y, width, height (all relative)
        xc, yc, bw, bh = row['x_center'], row['y_center'], row['width'], row['height']

        # Convert YOLO format to pixel coordinates
        xmin = int((xc - bw / 2) * w)
        ymin = int((yc - bh / 2) * h)
        xmax = int((xc + bw / 2) * w)
        ymax = int((yc + bh / 2) * h)

        # Append bounding box with class name to the dictionary
        boxes[image_path].append([xmin, ymin, xmax, ymax, row['class_name']])

    return boxes
In [ ]:
def split_df_by_image_with_first_class(df, test_size=0.2, random_state=42):
    '''
    Split the DataFrame into stratified training and testing sets,
    using the first class label associated with each unique image.

    Args:
        df: Pandas DataFrame containing at least 'image' and 'class_name' columns.
            Can contain multiple rows per image if there are multiple annotations.
        test_size: Proportion of the dataset to include in the test split.
        random_state: Controls the shuffling applied to the data before splitting.

    Returns:
        train_df: Subset of original df used for training.
        test_df: Subset of original df used for testing.
    '''

    # Extract the first occurrence of each image and its class label
    image_classes = df.drop_duplicates('image')[['image', 'class_name']]

    # Perform stratified split based on the first class label per image
    train_images, test_images = train_test_split(
        image_classes['image'],                         # only use unique images
        test_size=test_size,                            # percentage for test split
        random_state=random_state,                      # reproducibility
        stratify=image_classes['class_name']            # ensure balanced class distribution
    )

    # Filter the original DataFrame to get training and test subsets
    train_df = df[df['image'].isin(train_images)].reset_index(drop=True)
    test_df  = df[df['image'].isin(test_images)].reset_index(drop=True)

    return train_df, test_df
In [ ]:
def visualize_multiple_images(image_data_list, threshold=0.0, cols=3):
    """
    image_data_list: list of tuples [(image_path, predictions, ground_truths), ...]
    predictions: list of dicts with 'bbox', 'label', 'score'
    ground_truths: list of [x1, y1, x2, y2, class_name]
    """
    rows = (len(image_data_list) + cols - 1) // cols
    fig, axs = plt.subplots(rows, cols, figsize=(3 * cols, 3 * rows))

    # If only one row, axs will be 1D; flatten for uniformity
    axs = axs.flatten() if isinstance(axs, np.ndarray) else [axs]

    for idx, item in enumerate(image_data_list):
        image_path, predictions, ground_truths = item['image_path'], item['predictions'], item['ground_truths']
        ax = axs[idx]
        image = plt.imread(image_path)
        ax.imshow(image)

        # Ground Truths in green
        for gt in ground_truths:
            x1, y1, x2, y2, cls = gt
            rect = patches.Rectangle((x1, y1), x2 - x1, y2 - y1, linewidth=2, edgecolor='g', facecolor='none')
            ax.text(x1, y1 - 5, f'{cls}', color='g', fontsize=8,
                    bbox=dict(facecolor='white', edgecolor='g', boxstyle='round,pad=0.2'))
            ax.add_patch(rect)

        # Predictions in red
        for pred in predictions:
            x1, y1, x2, y2 = pred["bbox"]
            label = pred["label"]
            score = pred.get("score", 1.0)

            ious = [compute_iou([x1, y1, x2, y2], gt[:4]) for gt in ground_truths if gt[4] == label]
            iou = max(ious) if ious else 0.0
            if iou < threshold:
                continue

            rect = patches.Rectangle((x1, y1), x2 - x1, y2 - y1, linewidth=2, edgecolor='r', facecolor='none')
            ax.text(x1, y1 - 5, f'{label} IoU: {iou:.2f}', color='r', fontsize=8,
                    bbox=dict(facecolor='white', edgecolor='r', boxstyle='round,pad=0.2'))
            ax.add_patch(rect)

        ax.set_title("Predicted(Red)+GT(Green) ")
        ax.axis('off')

    # Hide unused subplots
    for i in range(len(image_data_list), len(axs)):
        axs[i].axis('off')

    plt.tight_layout()
    plt.show()
In [ ]:
from collections import defaultdict
import numpy as np

def evaluate_map(predictions_by_image, ground_truth_by_image, iou_threshold=0.5):
    """
    Calculate mean Average Precision (mAP) across all classes.

    Args:
        predictions_by_image: dict of {image_path: list of predictions},
                              where each prediction = {'label', 'bbox', 'score'}
        ground_truth_by_image: dict of {image_path: list of ground truths},
                              where each gt = [x1, y1, x2, y2, label]
        iou_threshold: float, IoU threshold to consider a prediction as correct.

    Returns:
        mAP score (float), and per-class AP (dict)
    """

    class_preds = defaultdict(list)  # class -> list of (score, TP/FP)
    class_gts = defaultdict(int)     # class -> number of GT boxes

    for image, gts in ground_truth_by_image.items():
        gt_boxes = [gt[:4] for gt in gts]
        gt_labels = [gt[4] for gt in gts]
        matched = set()

        for pred in sorted(predictions_by_image.get(image, []), key=lambda x: -x['score']):
            pred_box = pred['bbox']
            pred_label = pred['label']
            best_iou, best_gt_idx = 0, -1

            for i, (gt_box, gt_label) in enumerate(zip(gt_boxes, gt_labels)):
                if i in matched or gt_label != pred_label:
                    continue
                iou = compute_iou(pred_box, gt_box)
                if iou > best_iou:
                    best_iou = iou
                    best_gt_idx = i

            if best_iou >= iou_threshold:
                matched.add(best_gt_idx)
                class_preds[pred_label].append((pred['score'], 1))  # True Positive
            else:
                class_preds[pred_label].append((pred['score'], 0))  # False Positive

        for label in gt_labels:
            class_gts[label] += 1

    ap_per_class = {}
    for cls, preds in class_preds.items():
        preds.sort(reverse=True)
        tp = np.array([x[1] for x in preds])
        fp = 1 - tp
        cum_tp = np.cumsum(tp)
        cum_fp = np.cumsum(fp)
        precision = cum_tp / (cum_tp + cum_fp + 1e-6)
        recall = cum_tp / (class_gts[cls] + 1e-6)

        # Interpolated AP calculation
        ap = 0.0
        for t in np.linspace(0, 1, 11):
            p = precision[recall >= t].max() if np.any(recall >= t) else 0
            ap += p / 11
        ap_per_class[cls] = ap

    mAP = np.mean(list(ap_per_class.values())) if ap_per_class else 0.0
    return mAP, ap_per_class

Train Test Split¶

In [ ]:
# Create Annotation DF
annotation_df=pd.read_csv(f"{base_path}/annotation_refined.csv")
annotation_df['image_name']=annotation_df.apply(lambda row: f"{row['class_name']}/{row['image']}",axis=1)

Splitting dataset into train and test sets

  • Uses split_df_by_image_with_first_class to ensure stratified split based on class
  • 80% images used for training, 20% for testing
  • Ensures that images with the same first class stay together in the same split
In [ ]:
# Split data set by classname
train_df,test_df=split_df_by_image_with_first_class(annotation_df,test_size=0.2)
In [ ]:
# print train test df
print(train_df.shape)
print(test_df.shape)
(870, 7)
(220, 7)

Train and test DataFrame shape

  • Training set shape: (870, 7)
  • Testing set shape: (220, 7)

Each row represents a bounding box annotation.
This means the training set contains 870 annotations, and the test set contains 220.

RCNN¶

RCNN (Region-based Convolutional Neural Network)

  • Uses Selective Search to generate around 2000 region proposals per image.
  • Each proposed region is cropped and warped, then passed through a CNN (e.g., AlexNet/VGG16) to extract features.
  • These features are sent to:
    • an SVM classifier to determine the object class
    • a linear regressor to refine bounding box coordinates
  • RCNN is accurate but computationally expensive due to repeated CNN operations on overlapping regions.

R-CNN Pipeline

Custom RCNN Class

RCNN Model (Custom Implementation)

  • Implements the traditional RCNN architecture using Selective Search for region proposals.
  • Uses a pre-trained CNN (e.g., VGG16) as a feature extractor for region proposals.
  • Trains:
    • an SVM for object classification,
    • a Ridge Regressor for bounding box refinement.
  • Handles image resizing with padding to maintain aspect ratio for CNN input.
  • Predicts bounding boxes and classes on new images by extracting region proposals and classifying each using the trained models.
  • Includes model persistence via pickle for SVM, regressor, and label encoder, and HDF5 for CNN backbone.
In [ ]:
# Define RCNN tradional model
class RCNN:
    def __init__(self, cnn_backbone, max_proposals=200):
        self.cnn_backbone = cnn_backbone
        self.max_proposals = max_proposals
        self.encoder = LabelEncoder()
        self.svm = LinearSVC(max_iter=10000)
        self.bbox_regressor = Ridge()

    def resize_with_padding(self, image, target_size=(224, 224)):
        '''
        Resize image with padding
        '''
        old_size = image.size
        ratio = min(target_size[0] / old_size[0], target_size[1] / old_size[1])
        new_size = (int(old_size[0] * ratio), int(old_size[1] * ratio))
        image = image.resize(new_size, Image.Resampling.LANCZOS)

        new_im = Image.new("RGB", target_size)
        paste_position = ((target_size[0] - new_size[0]) // 2, (target_size[1] - new_size[1]) // 2)
        new_im.paste(image, paste_position)
        return new_im

    def extract_features(self, images_pil):
        '''
        Extract features from images using CNN
        '''
        images_pil = [self.resize_with_padding(img) for img in images_pil]
        arr = np.array([preprocess_input(img_to_array(img)) for img in images_pil])
        return self.cnn_backbone.predict(arr, verbose=0)

    def selective_search(self, img, max_proposals):
        '''
        Generate proposals using selective search
        '''
        ss = cv2.ximgproc.segmentation.createSelectiveSearchSegmentation()
        ss.setBaseImage(img)
        ss.switchToSelectiveSearchFast()
        rects = ss.process()
        return rects[:max_proposals]

    def train(self, df, image_dir):
        '''
        Train RCNN model
        '''
        print("Training RCNN model...")
        annotations = load_annotations_and_convert_yolo_bb(df, image_dir)
        X, y_labels, bbox_deltas = [], [], []

        for path, gt_boxes in tqdm(annotations.items(), desc="Processing training data"):
            image_cv = cv2.imread(path)
            if image_cv is None:
                print(f"Warning: Could not read image {path}")
                continue

            rects = self.selective_search(image_cv, self.max_proposals)
            rois_pil, coords = [], []

            for (x, y, w, h) in rects:
                x2, y2 = x + w, y + h
                roi = image_cv[y:y2, x:x2]
                if roi.shape[0] < 20 or roi.shape[1] < 20:
                    continue
                roi_pil = Image.fromarray(cv2.cvtColor(roi, cv2.COLOR_BGR2RGB))
                roi_pil = self.resize_with_padding(roi_pil)
                rois_pil.append(roi_pil)
                coords.append((x, y, x2, y2))

            if not rois_pil:
                continue

            features_batch = self.extract_features(rois_pil)

            for features, (x, y, x2, y2) in zip(features_batch, coords):
                max_iou = 0
                assigned_label = "background"
                assigned_box = None

                for gt in gt_boxes:
                    iou = compute_iou([x, y, x2, y2], gt[:4])
                    if iou > max_iou:
                        max_iou = iou
                        assigned_label = gt[4]
                        assigned_box = gt[:4]

                X.append(features)
                y_labels.append(assigned_label)

                if assigned_label != "background":
                    dx1 = assigned_box[0] - x
                    dy1 = assigned_box[1] - y
                    dx2 = assigned_box[2] - x
                    dy2 = assigned_box[3] - y
                    bbox_deltas.append([dx1, dy1, dx2, dy2])
                else:
                    bbox_deltas.append([0, 0, 0, 0])

        y_encoded = self.encoder.fit_transform(y_labels)
        self.svm.fit(X, y_encoded)
        self.bbox_regressor.fit(X, bbox_deltas)
        print("Training complete.")

    def predict(self, image_path):
        '''
        Predict using RCNN model
        '''
        image_cv = cv2.imread(image_path)
        if image_cv is None:
            raise ValueError(f"Image at {image_path} could not be read")

        rects = self.selective_search(image_cv, self.max_proposals)
        predictions = []

        for (x, y, w, h) in rects:
            x2, y2 = x + w, y + h
            roi = image_cv[y:y2, x:x2]
            if roi.shape[0] < 64 or roi.shape[1] < 64:
                continue

            roi_pil = Image.fromarray(cv2.cvtColor(roi, cv2.COLOR_BGR2RGB))
            roi_pil = self.resize_with_padding(roi_pil)

            features = self.extract_features([roi_pil])[0].reshape(1, -1)

            scores = self.svm.decision_function(features)[0]
            pred_cls_index = np.argmax(scores)
            confidence = scores[pred_cls_index]
            label = self.encoder.inverse_transform([pred_cls_index])[0]

            if label == "background":
                continue

            deltas = self.bbox_regressor.predict(features)[0]
            final_box = [x + int(deltas[0]), y + int(deltas[1]), x + int(deltas[2]), y + int(deltas[3])]
            height, width = image_cv.shape[:2]

            x1 = max(0, min(final_box[0], width - 1))
            y1 = max(0, min(final_box[1], height - 1))
            x2 = max(0, min(final_box[2], width - 1))
            y2 = max(0, min(final_box[3], height - 1))

            predictions.append({
                "label": label,
                "bbox": [x1, y1, x2, y2],
                "score": float(confidence)
            })

        return predictions

    def save_to_disk(self):
        '''
        Save RCNN model to disk
        '''
        with open("svm_classifier.pkl", "wb") as f:
            pickle.dump(self.svm, f)
        with open("bbox_regressor.pkl", "wb") as f:
            pickle.dump(self.bbox_regressor, f)
        with open("label_encoder.pkl", "wb") as f:
            pickle.dump(self.encoder, f)
        self.cnn_backbone.save("cnn_feature_extractor.h5")

Train RCNN Model

  • We define the RCNN model using EfficientNetB1 as the CNN backbone, pre-trained on ImageNet.
  • The model is configured to generate up to 400 region proposals per image using Selective Search.
  • Training is performed on the dataset using:
    • a Linear SVM for classifying each region,
    • and a Ridge Regressor for refining bounding box coordinates.
In [ ]:
# Define RCNN Model with 400 max proposals
model=RCNN(EfficientNetB1(weights="imagenet", include_top=False, pooling='avg'),max_proposals=400)
model.train(train_df,base_path)
Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb1_notop.h5
27018416/27018416 ━━━━━━━━━━━━━━━━━━━━ 2s 0us/step
Processing training data: 100%|██████████| 453/453 [52:37<00:00,  6.97s/it]
Training complete.

Observations:¶

  • Computionally expenshive as it toook more then 1.3 hours for 400 region proposal
  • This might be due to the selective search Algorithim which pass each region again and again and doonot reuse th features maps

Inference and Visualization on Test Image

  • The trained RCNN model is saved to disk, including:

    • the SVM classifier,
    • bounding box regressor,
    • label encoder,
    • and CNN feature extractor.
  • A single test image is picked (one from each class) to perform prediction.

  • The model predicts bounding boxes and class labels using region proposals.

  • Predictions are visualized alongside ground truth annotations using visualize_boxes_with_iou() with an IoU threshold of 0.0 to show all matches.

In [ ]:
# Save to disk
model.save_to_disk()
# Pick One image or instance from each class
df_one=test_df.drop_duplicates('class_name')
test_bb_box=load_annotations_and_convert_yolo_bb(df_one,base_path)

# Show only first instance
path=df_one.iloc[1]['image_name']
image_path=os.path.join(base_path,path)
prediction=model.predict(image_path=image_path)
gt_boxes=test_bb_box[image_path]
# Show with IOU threshold of 0.0
visualize_boxes_with_iou(image_path=image_path, predictions=prediction, ground_truths=gt_boxes,threshold=0.0)
WARNING:absl:You are saving your model as an HDF5 file via `model.save()` or `keras.saving.save_model(model)`. This file format is considered legacy. We recommend using instead the native Keras format, e.g. `model.save('my_model.keras')` or `keras.saving.save_model(model, 'my_model.keras')`. 
No description has been provided for this image

observations:¶

SO many bounding box with 0.0 ,Lets limit the threshold of IOU to 0.5

In [ ]:
# Show only one image but with IOU threshold of 0.6
df_one=test_df.drop_duplicates('class_name')
test_bb_box=load_annotations_and_convert_yolo_bb(df_one,base_path)
path=df_one.iloc[1]['image_name']
image_path=os.path.join(base_path,path)
prediction=model.predict(image_path=image_path)
gt_boxes=test_bb_box[image_path]
visualize_boxes_with_iou(image_path=image_path, predictions=prediction, ground_truths=gt_boxes,threshold=0.6)
No description has been provided for this image

Observations:¶

Now we can see all the boudning box are reduced and if we take only highest one then we will get the exact bouding box

In [ ]:
# SHow One image from ecah class
for row in df_one.iterrows():
    image_path=os.path.join(base_path,row[1]['image_name'])
    prediction=model.predict(image_path=image_path)
    gt_boxes=test_bb_box[image_path]
    visualize_boxes_with_iou(image_path, prediction, gt_boxes,0.6)
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
No description has been provided for this image
In [ ]:
image_names_list = list(test_df['image_name'])  # Extract image names from the DataFrame
image_paths_list = [os.path.join(base_path, image_name) for image_name in image_names_list]  # Create full image paths

predictions_by_image = {}

for img_path in image_paths_list:
    img = cv2.imread(img_path)  # Read image using OpenCV
    if img is None:
        continue  # Skip if image is unreadable
    try:
        predictions_by_image[img_path] = model.predict(img_path)  # Run YOLO prediction
    except Exception as e:
        print(f"Error predicting for {img_path}: {e}")  # Handle prediction errors

ground_truth_by_image = test_bb_box  # Ground truth annotations

# Evaluate predictions using mean Average Precision (mAP)
mAP, ap_per_class = evaluate_map(predictions_by_image, ground_truth_by_image)

print(f"mAP: {mAP:.3f}")  # Print overall mAP
for cls, ap in ap_per_class.items():
    print(f"{cls}: {ap:.3f}")  # Print AP for each class
mAP: 0.553
tacos: 0.303
samosa: 0.227
french_fries: 0.909
strawberry_shortcake: 0.909
ice_cream: 0.000
onion_ring: 0.909
nachos: 0.000
pizza: 0.455
chocolate_cake: 0.909
waffle: 0.909
Class Average Precision (AP)
tacos 0.303
samosa 0.227
french_fries 0.909
strawberry_shortcake 0.909
ice_cream 0.000
onion_ring 0.909
nachos 0.000
pizza 0.455
chocolate_cake 0.909
waffle 0.909

mAP: 0.553

Observations¶

  • High-performing classes (AP ≥ 0.90): french_fries, strawberry_shortcake, onion_ring, chocolate_cake, and waffle are detected very well, likely due to strong visual distinction and good annotations.
  • Zero AP classes: ice_cream and nachos scored 0.000 AP, suggesting issues like poor annotations, occlusion, or high intra-class variation.
  • pizza shows moderate detection capability (0.455 AP), indicating potential for improvement.

Faster RCNN¶

Faster R-CNN is an advanced object detection model that improves over R-CNN by replacing the slow selective search with a Region Proposal Network (RPN), which generates region proposals directly from the feature maps. This allows end-to-end training and significantly speeds up detection while maintaining high accuracy.

Faster RCNN Helpers¶

Custom Dataset Summary

  • The FasterRCNNDataset class extends PyTorch's Dataset to work with Faster R-CNN.
  • It loads images and their corresponding bounding boxes and class labels.
  • Labels are encoded using LabelEncoder.
  • If a transform (e.g., Albumentations) is provided, it applies augmentations to both images and bounding boxes.
  • Returns a tuple: the image tensor and a dictionary containing boxes and labels.
In [ ]:
#Extend Dataset class to have own custom daatset
class FasterRCNNDataset(Dataset):
    def __init__(self, annotations, label_encoder, transform=None):
        self.image_paths = list(annotations.keys())
        self.annotations = annotations
        self.label_encoder = label_encoder
        self.transform = transform
    # dunder methods for overriding Dataset
    def __getitem__(self, idx):
        image_path = self.image_paths[idx]
        image = np.array(Image.open(image_path).convert("RGB"))

        annots = self.annotations[image_path]
        boxes = []
        labels = []

        for x1, y1, x2, y2, label in annots:
            boxes.append([x1, y1, x2, y2])
            labels.append(self.label_encoder.transform([label])[0])

        # Albumentations expects labels to be in list
        if self.transform:
            transformed = self.transform(image=image, bboxes=boxes, labels=labels)
            image = transformed['image']
            boxes = transformed['bboxes']
            labels = transformed['labels']
        else:
            image = F.to_tensor(image)

        target = {
            "boxes": torch.tensor(boxes, dtype=torch.float32),
            "labels": torch.tensor(labels, dtype=torch.int64)
        }

        return image, target

    def __len__(self):
        return len(self.image_paths)

Faster R-CNN Model Setup and Training:

In [ ]:
def get_model(num_classes):
    """
    Load a pre-trained Faster R-CNN model and adapt it for a custom number of classes.

    Args:
        num_classes: Total number of output classes including background (usually background is class 0).

    Returns:
        model: Modified Faster R-CNN model ready for training.
    """

    # Load a Faster R-CNN model pre-trained on COCO dataset
    model = torchvision.models.detection.fasterrcnn_resnet50_fpn(pretrained=True)

    # Extract the number of input features for the final classifier layer
    in_features = model.roi_heads.box_predictor.cls_score.in_features

    # Replace the classifier head with a new one suited for the target number of classes
    model.roi_heads.box_predictor = FastRCNNPredictor(in_features, num_classes)

    return model


def train_faster_rcnn(model, train_loader, device, epochs=5):
    """
    Train a Faster R-CNN model using a given DataLoader.

    Args:
        model: A Faster R-CNN model created using get_model().
        train_loader: DataLoader providing batches of images and annotations.
        device: Device to use ('cuda' or 'cpu').
        epochs: Number of training epochs.

    Returns:
        None (trains the model in-place and prints loss after each epoch).
    """

    # Move the model to the selected device (GPU/CPU)
    model.to(device)
    model.train()

    # Use AdamW optimizer which includes weight decay (helps regularize training)
    optimizer = torch.optim.AdamW(model.parameters(), lr=1e-4)

    # Loop through each training epoch
    for epoch in range(epochs):
        epoch_loss = 0.0

        # Loop through each batch from the training DataLoader
        for imgs, targets in train_loader:
            # Move both images and their corresponding targets to the device
            imgs = [img.to(device) for img in imgs]
            targets = [{k: v.to(device) for k, v in t.items()} for t in targets]

            # Forward pass through the model to compute individual loss components
            loss_dict = model(imgs, targets)

            # Total loss is the sum of all individual losses (e.g., classification, bbox regression)
            losses = sum(loss for loss in loss_dict.values())

            # Zero out previous gradients before backprop
            optimizer.zero_grad()

            # Backward pass to compute gradients
            losses.backward()

            # Update model weights
            optimizer.step()

            # Accumulate loss for monitoring
            epoch_loss += losses.item()

        # Print average loss for the epoch
        avg_loss = epoch_loss / len(train_loader)
        print(f"Epoch {epoch+1}: Avg Loss = {avg_loss:.4f}")

Faster R-CNN Prediction:

In [ ]:
def get_predictions_faster_rcnn(model, dataset, label_encoder, device, confidence_threshold=0.5):
    """
    Run inference on a dataset using a trained Faster R-CNN model.

    Args:
        model: Trained Faster R-CNN model.
        dataset: A custom dataset where each item returns (image_tensor, target_dict).
        label_encoder: A fitted LabelEncoder used to decode label indices into class names.
        device: The device to run inference on ('cuda' or 'cpu').
        confidence_threshold: Minimum confidence score to keep a prediction.

    Returns:
        image_data_list: A list of dictionaries, each containing:
                         - image_path
                         - predictions: list of predicted bboxes with class labels and scores
                         - ground_truths: list of ground truth bboxes with class labels
    """

    # Create a mapping from class index to class name
    label_mapper = dict(zip(
        label_encoder.transform(label_encoder.classes_),  # [0, 1, 2, ...]
        label_encoder.classes_                            # ['cat', 'dog', ...]
    ))

    image_data_list = []

    # Iterate over all samples in the dataset
    for i in range(len(dataset)):
        image_path = dataset.image_paths[i]
        image, target = dataset[i]

        if image is None:
            continue  # Skip if image could not be loaded

        with torch.no_grad():
            # Run inference for a single image
            prediction = model([image.to(device)])[0]

        # Extract boxes, labels, and confidence scores from prediction
        boxes = prediction['boxes'].cpu().numpy()
        labels = prediction['labels'].cpu().numpy()
        scores = prediction['scores'].cpu().numpy()

        # Filter predictions based on confidence threshold
        filtered_preds = [
            {
                "bbox": bbox,
                "label": label_mapper[label],
                "score": score
            }
            for bbox, label, score in zip(boxes, labels, scores)
            if score >= confidence_threshold
        ]

        # Ground truth: convert bounding boxes and label indices to readable format
        gt_boxes = target["boxes"].cpu().numpy()
        gt_labels = target["labels"].cpu().numpy()
        gt = [
            list(gt_box) + [label_mapper[label]]
            for gt_box, label in zip(gt_boxes, gt_labels)
        ]

        # Store all information for this image
        image_data_list.append({
            "image_path": image_path,
            "predictions": filtered_preds,
            "ground_truths": gt
        })

    return image_data_list

Faster R-CNN Training:

In [ ]:
# Encode class labels
label_encoder = LabelEncoder()
label_encoder.fit(train_df['class_name'].astype(str))

# Convert YOLO to pixel boxes
annotations = load_annotations_and_convert_yolo_bb(train_df, base_path)

# Create Dataset and DataLoader
train_dataset = FasterRCNNDataset(annotations, label_encoder)

train_loader = DataLoader(train_dataset, batch_size=2, shuffle=True, collate_fn=lambda x: tuple(zip(*x)))
# Model
num_classes = len(label_encoder.classes_) + 1  # include background
model = get_model(num_classes)
# Train
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')
train_faster_rcnn(model, train_loader, device, epochs=30)
/usr/local/lib/python3.11/dist-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.
  warnings.warn(
/usr/local/lib/python3.11/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=FasterRCNN_ResNet50_FPN_Weights.COCO_V1`. You can also use `weights=FasterRCNN_ResNet50_FPN_Weights.DEFAULT` to get the most up-to-date weights.
  warnings.warn(msg)
Epoch 1: Loss = 0.5244
Epoch 2: Loss = 0.0516
Epoch 3: Loss = 0.1357
Epoch 4: Loss = 0.6049
Epoch 5: Loss = 0.0910
Epoch 6: Loss = 0.1557
Epoch 7: Loss = 0.1110
Epoch 8: Loss = 0.1573
Epoch 9: Loss = 0.4337
Epoch 10: Loss = 0.4737
Epoch 11: Loss = 0.1409
Epoch 12: Loss = 0.2648
Epoch 13: Loss = 0.0319
Epoch 14: Loss = 0.2202
Epoch 15: Loss = 0.0744
Epoch 16: Loss = 0.1715
Epoch 17: Loss = 0.0622
Epoch 18: Loss = 0.0377
Epoch 19: Loss = 0.3208
Epoch 20: Loss = 0.0774
Epoch 21: Loss = 0.1495
Epoch 22: Loss = 0.2125
Epoch 23: Loss = 0.1563
Epoch 24: Loss = 0.0348
Epoch 25: Loss = 0.4096
Epoch 26: Loss = 0.1356
Epoch 27: Loss = 0.1623
Epoch 28: Loss = 0.0381
Epoch 29: Loss = 0.2366
Epoch 30: Loss = 0.0462
  • Loss at 30 epch was at 0.0462.We will see if this improves the performances
  • Faster RCNN is faster then RCNN model compared to RCNN due to image being passed only once and faster RCNN has Region Proposal Network which is a CNN model and we are reusing features map which is generated by CNN.

Show 3 images from each class¶

Faster R-CNN Inference:

In [ ]:
# Filter the DataFrame
test_df_filtered = test_df[test_df['image_name'].apply(lambda x: cv2.imread(os.path.join(base_path, x)) is not None)].reset_index(drop=True)
test_annotations = load_annotations_and_convert_yolo_bb(test_df_filtered, base_path)
test_dataset = FasterRCNNDataset(test_annotations, label_encoder)
model.eval()
# get prediction
image_data_list=get_predictions_faster_rcnn(model, test_dataset, label_encoder, device)
visualize_multiple_images(image_data_list,threshold=0.5)
No description has been provided for this image

Faster R-CNN Model: Detection Results Summary:

Red Boxes: Model Predictions
These represent the bounding boxes predicted by the Faster R-CNN model. Each box includes the predicted class label and its confidence score.

Green Boxes: Ground Truth Labels
These are the actual annotated bounding boxes from the test dataset.

Visual Evaluation:

  • Many predictions have a strong overlap with the ground truths.
  • Some cases show:
    • Missed detections (false negatives)
    • Incorrect predictions (false positives)
    • Misaligned bounding boxes with low Intersection over Union (IoU)

Commonly Detected Classes:

  • Pizza
  • Samosa
  • French fries
  • Onion rings

Next, build dictionaries for predictions and ground truths:

In [ ]:
# Build prediction and GT dicts
predictions_by_image = {}
ground_truth_by_image = {}

for item in image_data_list:
    image_path = item['image_path']
    predictions_by_image[image_path] = item['predictions']
    ground_truth_by_image[image_path] = item['ground_truths']

# Evaluate mAP
mAP, ap_per_class = evaluate_map(predictions_by_image, ground_truth_by_image, iou_threshold=0.5)

print(f"mAP: {mAP:.3f}")
for cls, ap in ap_per_class.items():
    print(f"{cls}: {ap:.3f}")
mAP: 0.405
tacos: 0.386
french_fries: 0.727
ice_cream: 0.145
onion_ring: 0.304
samosa: 0.422
nachos: 0.209
waffle: 0.364
strawberry_shortcake: 0.361
pizza: 0.727

Observations:¶

Model Evaluation Results (mAP@50)¶

Class mAP@50
Overall 0.405
tacos 0.386
french_fries 0.727
ice_cream 0.145
onion_ring 0.304
samosa 0.422
nachos 0.209
waffle 0.364
strawberry_shortcake 0.361
pizza 0.727

Observations¶

  • The overall mAP@50 is 0.405, which indicates moderate detection performance.
  • french_fries and pizza have the highest precision (0.727), showing strong detection capability.
  • ice_cream and nachos perform poorly with scores below 0.21, likely needing more data or clearer annotations.
  • strawberry_shortcake and waffle perform moderately and may benefit from better augmentation or fine-tuning.
  • A wide variance in class-wise performance suggests possible class imbalance or varying annotation quality.

Faster RCNN does not have any class where it has 0 mAP but the overall mAP is reduced due to less score in other class unlike RCNN

Faster RCNN Training With Augmenation¶

In [ ]:
# Encode class labels into numerical format
label_encoder = LabelEncoder()
label_encoder.fit(train_df['class_name'].astype(str))

# Convert YOLO bounding boxes to pixel coordinates (Pascal VOC format)
annotations = load_annotations_and_convert_yolo_bb(train_df, base_path)

# Define image augmentation and preprocessing using Albumentations
transform = A.Compose([
    A.HorizontalFlip(p=0.5),                       # Random horizontal flip
    A.RandomBrightnessContrast(p=0.2),             # Random brightness and contrast
    A.ColorJitter(p=0.3),                          # Jitter in color
    A.Rotate(limit=15, p=0.4),                     # Random rotation
    A.MotionBlur(p=0.2),                           # Random motion blur
    A.RandomSizedBBoxSafeCrop(height=320, width=320, p=0.5),  # Safe crop preserving bboxes
    A.Normalize(mean=(0.485, 0.456, 0.406),        # Normalize using ImageNet mean and std
                std=(0.229, 0.224, 0.225)),
    ToTensorV2()                                   # Convert image and bbox to PyTorch tensor
], bbox_params=A.BboxParams(format='pascal_voc', label_fields=['labels']))  # Define bbox format

# Create custom dataset with transformations and annotation mapping
train_dataset = FasterRCNNDataset(annotations, label_encoder, transform=transform)

# Wrap dataset with DataLoader for mini-batch training
# collate_fn ensures batching works with variable-size targets
train_loader = DataLoader(train_dataset, batch_size=2, shuffle=True, collate_fn=lambda x: tuple(zip(*x)))

# Calculate total number of classes (include background class)
num_classes = len(label_encoder.classes_) + 1

# Get pre-trained Faster R-CNN model adapted for your dataset
model_fast_rcnn_aug = get_model(num_classes)

# Determine training device (GPU if available)
device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')

# Train the model for 30 epochs
train_faster_rcnn(model_fast_rcnn_aug, train_loader, device, epochs=30)
/usr/local/lib/python3.11/dist-packages/torchvision/models/_utils.py:208: UserWarning: The parameter 'pretrained' is deprecated since 0.13 and may be removed in the future, please use 'weights' instead.
  warnings.warn(
/usr/local/lib/python3.11/dist-packages/torchvision/models/_utils.py:223: UserWarning: Arguments other than a weight enum or `None` for 'weights' are deprecated since 0.13 and may be removed in the future. The current behavior is equivalent to passing `weights=FasterRCNN_ResNet50_FPN_Weights.COCO_V1`. You can also use `weights=FasterRCNN_ResNet50_FPN_Weights.DEFAULT` to get the most up-to-date weights.
  warnings.warn(msg)
Epoch 1: Loss = 0.3016
Epoch 2: Loss = 0.0803
Epoch 3: Loss = 0.1975
Epoch 4: Loss = 0.1309
Epoch 5: Loss = 0.0656
Epoch 6: Loss = 0.2694
Epoch 7: Loss = 0.6220
Epoch 8: Loss = 0.1050
Epoch 9: Loss = 0.3849
Epoch 10: Loss = 0.1904
Epoch 11: Loss = 0.0153
Epoch 12: Loss = 0.0849
Epoch 13: Loss = 0.0665
Epoch 14: Loss = 0.4386
Epoch 15: Loss = 0.1705
Epoch 16: Loss = 0.2033
Epoch 17: Loss = 0.0444
Epoch 18: Loss = 0.0784
Epoch 19: Loss = 0.1227
Epoch 20: Loss = 0.3914
Epoch 21: Loss = 0.3483
Epoch 22: Loss = 0.0683
Epoch 23: Loss = 0.1475
Epoch 24: Loss = 0.0828
Epoch 25: Loss = 0.1717
Epoch 26: Loss = 0.5924
Epoch 27: Loss = 0.0406
Epoch 28: Loss = 0.1309
Epoch 29: Loss = 0.4870
Epoch 30: Loss = 0.1401

Observations:¶

The loss is higher than faster RCNN without augmenations

YOLO (You Look Only Once)¶

Note:Although YOLO is pre-trained on the COCO dataset, it hasn't been exposed to the full range of classes in the Food-101 dataset. Therefore, we need to fine-tune it on our dataset to improve its performance on food-specific categories.

Prepare Dataset For Yolo¶

Yolo Helpers¶

In [ ]:
def create_yolo_dataset(df, image_col='image_name', label_col='class_id',
                        split_ratio=0.2, base_dir='datasets', image_name_col='image'):
    # Split the DataFrame into training and testing sets based on unique images and first class (stratified)
    train_df, test_df = split_df_by_image_with_first_class(df, test_size=split_ratio)

    # Define directory structure for YOLO format
    folders = {
        'train_images': os.path.join(base_dir, 'images', 'train'),
        'train_labels': os.path.join(base_dir, 'labels', 'train'),
        'val_images': os.path.join(base_dir, 'images', 'val'),
        'val_labels': os.path.join(base_dir, 'labels', 'val')
    }

    # Create necessary folders if they don't exist
    for f in folders.values():
        os.makedirs(f, exist_ok=True)

    def save_split(split_df, img_folder, label_folder):
        # Group annotations by image
        grouped = split_df.groupby(image_name_col)
        for image_name, group in tqdm(grouped, desc=f"Processing {img_folder}"):
            # Source image path (original path from DataFrame)
            image_path = group[image_col].iloc[0]

            # Target path in new dataset structure
            target_img_path = os.path.join(img_folder, image_name)
            shutil.copy(image_path, target_img_path)  # Copy image to destination

            # Create corresponding YOLO label file (.txt)
            label_txt_path = os.path.join(label_folder, image_name.replace('.jpg', '.txt').replace('.png', '.txt'))
            with open(label_txt_path, 'w') as f:
                for _, row in group.iterrows():
                    # YOLO format: <class_id> <x_center> <y_center> <width> <height>
                    class_id = int(row[label_col])
                    x, y, w, h = row['x_center'], row['y_center'], row['width'], row['height']
                    f.write(f"{class_id} {x} {y} {w} {h}\n")

    # Save training and validation splits in YOLO format
    save_split(train_df, folders['train_images'], folders['train_labels'])
    save_split(test_df, folders['val_images'], folders['val_labels'])

    # Inform the user
    print(f"\nYOLO-ready dataset created at `{base_dir}`")

    # Return path to root dataset directory
    return base_dir
In [ ]:
import yaml

def generate_yolo_config_yaml(base_dir, class_mapping, output_file='data.yaml'):
    '''
    Generate a YOLOv8-compatible configuration YAML file.

    Args:
        base_dir (str): Root directory containing 'images/train' and 'images/val' folders.
        class_mapping (dict): Dictionary mapping class names to numeric IDs.
                              Example: {'dog': 0, 'cat': 1}
        output_file (str): Path to save the generated YAML config file.

    Creates:
        A YAML file with train/val image paths, number of classes, and class names.
    '''

    # Define base structure of the config file
    data_yaml = {
        'train': os.path.join(base_dir, 'images', 'train'),  # Training image folder path
        'val': os.path.join(base_dir, 'images', 'val'),      # Validation image folder path
        'nc': len(class_mapping),                            # Number of classes
        'names': [None] * len(class_mapping)                 # Placeholder for class names in index order
    }

    # Populate class names in correct index positions
    for name, idx in class_mapping.items():
        data_yaml['names'][idx] = name

    # Write the YAML data to a file
    with open(output_file, 'w') as f:
        yaml.dump(data_yaml, f)

    # Notify the user
    print(f"YOLOv8 config saved to `{output_file}`")

In [ ]:
# define classname to map
class_name={'chocolate_cake': 0, 'french_fries': 1, 'ice_cream': 2, 'nachos': 3, 'onion_ring': 4, 'pizza': 5, 'samosa': 6, 'strawberry_shortcake': 7, 'tacos': 8, 'waffle': 9}
# copy and then map to the previosu defined mapping
annot_copy_df=annotation_df.copy(deep=True)
annot_copy_df['image_name']=annot_copy_df['image_name'].apply(lambda x:os.path.join(base_path,x))
annot_copy_df['class_id']=annot_copy_df['class_name'].map(class_name)
# create yolo dataset to train and validation
create_yolo_dataset(annot_copy_df)
Processing datasets/images/train: 100%|██████████| 447/447 [00:00<00:00, 1724.52it/s]
Processing datasets/images/val: 100%|██████████| 112/112 [00:00<00:00, 1910.83it/s]
YOLO-ready dataset created at `datasets`

Out[ ]:
'datasets'
In [ ]:
# generate config yaml file for yolo
generate_yolo_config_yaml('datasets', class_name)
YOLOv8 config saved to `data.yaml`
In [ ]:
from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")

# Train the model
model.train(data="data.yaml", epochs=50, imgsz=640)

# Evaluate on validation set
metrics = model.val()
Creating new Ultralytics Settings v0.0.6 file ✅ 
View Ultralytics Settings with 'yolo settings' or at '/root/.config/Ultralytics/settings.json'
Update Settings with 'yolo settings key=value', i.e. 'yolo settings runs_dir=path/to/dir'. For help see https://docs.ultralytics.com/quickstart/#ultralytics-settings.
Downloading https://github.com/ultralytics/assets/releases/download/v8.3.0/yolov8n.pt to 'yolov8n.pt'...
100%|██████████| 6.25M/6.25M [00:00<00:00, 118MB/s]
Ultralytics 8.3.155 🚀 Python-3.11.13 torch-2.6.0+cu124 CUDA:0 (Tesla T4, 15095MiB)
engine/trainer: agnostic_nms=False, amp=True, augment=False, auto_augment=randaugment, batch=16, bgr=0.0, box=7.5, cache=False, cfg=None, classes=None, close_mosaic=10, cls=0.5, conf=None, copy_paste=0.0, copy_paste_mode=flip, cos_lr=False, cutmix=0.0, data=data.yaml, degrees=0.0, deterministic=True, device=None, dfl=1.5, dnn=False, dropout=0.0, dynamic=False, embed=None, epochs=50, erasing=0.4, exist_ok=False, fliplr=0.5, flipud=0.0, format=torchscript, fraction=1.0, freeze=None, half=False, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, imgsz=640, int8=False, iou=0.7, keras=False, kobj=1.0, line_width=None, lr0=0.01, lrf=0.01, mask_ratio=4, max_det=300, mixup=0.0, mode=train, model=yolov8n.pt, momentum=0.937, mosaic=1.0, multi_scale=False, name=train, nbs=64, nms=False, opset=None, optimize=False, optimizer=auto, overlap_mask=True, patience=100, perspective=0.0, plots=True, pose=12.0, pretrained=True, profile=False, project=None, rect=False, resume=False, retina_masks=False, save=True, save_conf=False, save_crop=False, save_dir=runs/detect/train, save_frames=False, save_json=False, save_period=-1, save_txt=False, scale=0.5, seed=0, shear=0.0, show=False, show_boxes=True, show_conf=True, show_labels=True, simplify=True, single_cls=False, source=None, split=val, stream_buffer=False, task=detect, time=None, tracker=botsort.yaml, translate=0.1, val=True, verbose=True, vid_stride=1, visualize=False, warmup_bias_lr=0.1, warmup_epochs=3.0, warmup_momentum=0.8, weight_decay=0.0005, workers=8, workspace=None
Downloading https://ultralytics.com/assets/Arial.ttf to '/root/.config/Ultralytics/Arial.ttf'...
100%|██████████| 755k/755k [00:00<00:00, 27.5MB/s]
Overriding model.yaml nc=80 with nc=10

                   from  n    params  module                                       arguments                     
  0                  -1  1       464  ultralytics.nn.modules.conv.Conv             [3, 16, 3, 2]                 
  1                  -1  1      4672  ultralytics.nn.modules.conv.Conv             [16, 32, 3, 2]                
  2                  -1  1      7360  ultralytics.nn.modules.block.C2f             [32, 32, 1, True]             
  3                  -1  1     18560  ultralytics.nn.modules.conv.Conv             [32, 64, 3, 2]                
  4                  -1  2     49664  ultralytics.nn.modules.block.C2f             [64, 64, 2, True]             
  5                  -1  1     73984  ultralytics.nn.modules.conv.Conv             [64, 128, 3, 2]               
  6                  -1  2    197632  ultralytics.nn.modules.block.C2f             [128, 128, 2, True]           
  7                  -1  1    295424  ultralytics.nn.modules.conv.Conv             [128, 256, 3, 2]              
  8                  -1  1    460288  ultralytics.nn.modules.block.C2f             [256, 256, 1, True]           
  9                  -1  1    164608  ultralytics.nn.modules.block.SPPF            [256, 256, 5]                 
 10                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 11             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 12                  -1  1    148224  ultralytics.nn.modules.block.C2f             [384, 128, 1]                 
 13                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 14             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 15                  -1  1     37248  ultralytics.nn.modules.block.C2f             [192, 64, 1]                  
 16                  -1  1     36992  ultralytics.nn.modules.conv.Conv             [64, 64, 3, 2]                
 17            [-1, 12]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 18                  -1  1    123648  ultralytics.nn.modules.block.C2f             [192, 128, 1]                 
 19                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]              
 20             [-1, 9]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 21                  -1  1    493056  ultralytics.nn.modules.block.C2f             [384, 256, 1]                 
 22        [15, 18, 21]  1    753262  ultralytics.nn.modules.head.Detect           [10, [64, 128, 256]]          

Model summary: 129 layers, 3,012,798 parameters, 3,012,782 gradients, 8.2 GFLOPs

Transferred 319/355 items from pretrained weights
Freezing layer 'model.22.dfl.conv.weight'
AMP: running Automatic Mixed Precision (AMP) checks...
Downloading https://github.com/ultralytics/assets/releases/download/v8.3.0/yolo11n.pt to 'yolo11n.pt'...
100%|██████████| 5.35M/5.35M [00:00<00:00, 88.7MB/s]
AMP: checks passed ✅
train: Fast image access ✅ (ping: 0.0±0.0 ms, read: 1485.0±673.3 MB/s, size: 42.2 KB)
train: Scanning /content/datasets/labels/train... 447 images, 0 backgrounds, 0 corrupt: 100%|██████████| 447/447 [00:00<00:00, 2508.37it/s]
train: New cache created: /content/datasets/labels/train.cache
albumentations: Blur(p=0.01, blur_limit=(3, 7)), MedianBlur(p=0.01, blur_limit=(3, 7)), ToGray(p=0.01, method='weighted_average', num_output_channels=3), CLAHE(p=0.01, clip_limit=(1.0, 4.0), tile_grid_size=(8, 8))

val: Fast image access ✅ (ping: 0.0±0.0 ms, read: 1020.4±526.2 MB/s, size: 56.3 KB)
val: Scanning /content/datasets/labels/val... 112 images, 0 backgrounds, 0 corrupt: 100%|██████████| 112/112 [00:00<00:00, 765.58it/s]
val: New cache created: /content/datasets/labels/val.cache

Plotting labels to runs/detect/train/labels.jpg... 
optimizer: 'optimizer=auto' found, ignoring 'lr0=0.01' and 'momentum=0.937' and determining best 'optimizer', 'lr0' and 'momentum' automatically... 
optimizer: AdamW(lr=0.000714, momentum=0.9) with parameter groups 57 weight(decay=0.0), 64 weight(decay=0.0005), 63 bias(decay=0.0)
Image sizes 640 train, 640 val
Using 2 dataloader workers
Logging results to runs/detect/train
Starting training for 50 epochs...

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       1/50      2.12G      1.455      3.802       1.78         81        640: 100%|██████████| 28/28 [00:15<00:00,  1.86it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:06<00:00,  1.53s/it]
                   all        112        220    0.00685       0.86      0.105     0.0551

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       2/50       2.6G       1.37      3.317      1.767         74        640: 100%|██████████| 28/28 [00:10<00:00,  2.76it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.01it/s]
                   all        112        220    0.00939      0.848      0.129     0.0592

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       3/50      2.62G      1.423       3.01      1.795         70        640: 100%|██████████| 28/28 [00:11<00:00,  2.53it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.15it/s]
                   all        112        220      0.235      0.237      0.173     0.0714

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       4/50      2.63G      1.392      2.808       1.81         54        640: 100%|██████████| 28/28 [00:06<00:00,  4.42it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.99it/s]
                   all        112        220      0.452      0.221      0.231       0.11

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       5/50      2.65G      1.389      2.642      1.765         80        640: 100%|██████████| 28/28 [00:07<00:00,  3.99it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.63it/s]
                   all        112        220      0.317      0.357      0.292      0.132

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       6/50      2.67G      1.421      2.531      1.783         64        640: 100%|██████████| 28/28 [00:07<00:00,  3.50it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.31it/s]
                   all        112        220      0.322      0.426      0.298      0.143

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       7/50      2.69G      1.415      2.397      1.767         57        640: 100%|██████████| 28/28 [00:06<00:00,  4.03it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.35it/s]
                   all        112        220      0.309      0.432      0.338      0.157

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       8/50      2.71G      1.403      2.414      1.736         61        640: 100%|██████████| 28/28 [00:07<00:00,  3.61it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.67it/s]
                   all        112        220      0.291      0.294      0.254      0.118

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       9/50      2.72G      1.371      2.311      1.717         83        640: 100%|██████████| 28/28 [00:07<00:00,  3.80it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.22it/s]
                   all        112        220      0.271      0.341       0.27      0.129

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      10/50      2.74G      1.411      2.296      1.753         65        640: 100%|██████████| 28/28 [00:06<00:00,  4.36it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.52it/s]
                   all        112        220      0.425      0.419      0.406      0.221

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      11/50      2.75G      1.379      2.207      1.716         51        640: 100%|██████████| 28/28 [00:08<00:00,  3.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.82it/s]
                   all        112        220       0.41      0.432      0.368      0.201

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      12/50      2.77G      1.349      2.169      1.696         59        640: 100%|██████████| 28/28 [00:06<00:00,  4.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.12it/s]
                   all        112        220      0.392      0.363      0.339      0.184

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      13/50      2.79G      1.328       2.11      1.674         82        640: 100%|██████████| 28/28 [00:07<00:00,  3.94it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.28it/s]
                   all        112        220      0.478      0.415      0.423      0.219

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      14/50       2.8G      1.323      2.041      1.695         70        640: 100%|██████████| 28/28 [00:07<00:00,  3.58it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.17it/s]
                   all        112        220      0.615      0.392      0.431      0.226

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      15/50      2.82G      1.315      1.985      1.658         70        640: 100%|██████████| 28/28 [00:08<00:00,  3.41it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.34it/s]
                   all        112        220      0.514      0.382      0.396      0.196

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      16/50      2.84G      1.282      1.934      1.624         84        640: 100%|██████████| 28/28 [00:10<00:00,  2.58it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.41it/s]
                   all        112        220      0.428      0.473       0.45      0.233

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      17/50      2.86G      1.336       1.95      1.652         62        640: 100%|██████████| 28/28 [00:10<00:00,  2.72it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:03<00:00,  1.18it/s]
                   all        112        220      0.445      0.486      0.457      0.247

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      18/50      2.87G      1.267      1.935      1.633         80        640: 100%|██████████| 28/28 [00:08<00:00,  3.38it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.68it/s]
                   all        112        220       0.59      0.326      0.381      0.208

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      19/50      2.89G      1.272      1.787      1.629         38        640: 100%|██████████| 28/28 [00:07<00:00,  3.60it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.58it/s]
                   all        112        220      0.588      0.401       0.46      0.236

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      20/50      2.91G      1.266      1.798      1.611         60        640: 100%|██████████| 28/28 [00:07<00:00,  3.86it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.25it/s]
                   all        112        220      0.494      0.463       0.46      0.244

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      21/50      2.93G      1.253      1.767      1.595         76        640: 100%|██████████| 28/28 [00:06<00:00,  4.28it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.84it/s]
                   all        112        220      0.789      0.425      0.539      0.305

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      22/50      2.94G      1.226      1.756       1.57         66        640: 100%|██████████| 28/28 [00:08<00:00,  3.33it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.68it/s]
                   all        112        220      0.516      0.498       0.47      0.262

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      23/50      2.96G      1.219      1.751       1.59         59        640: 100%|██████████| 28/28 [00:06<00:00,  4.12it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.26it/s]
                   all        112        220      0.555      0.413      0.493       0.26

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      24/50      2.98G      1.197      1.726      1.571         52        640: 100%|██████████| 28/28 [00:06<00:00,  4.04it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.37it/s]
                   all        112        220      0.543      0.441      0.479      0.252

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      25/50      2.99G      1.209      1.647      1.554         75        640: 100%|██████████| 28/28 [00:08<00:00,  3.40it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.47it/s]
                   all        112        220      0.503      0.491      0.501      0.265

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      26/50      3.01G      1.186      1.595      1.535         73        640: 100%|██████████| 28/28 [00:07<00:00,  3.82it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.59it/s]
                   all        112        220      0.481      0.482      0.483      0.257

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      27/50      3.03G      1.207      1.538      1.535         65        640: 100%|██████████| 28/28 [00:07<00:00,  3.83it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.32it/s]
                   all        112        220      0.663      0.459       0.48       0.27

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      28/50      3.04G      1.162      1.577      1.522         72        640: 100%|██████████| 28/28 [00:08<00:00,  3.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.50it/s]
                   all        112        220      0.489      0.519      0.539      0.292

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      29/50      3.06G      1.153      1.571      1.527         44        640: 100%|██████████| 28/28 [00:08<00:00,  3.48it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.62it/s]
                   all        112        220      0.653      0.508      0.546      0.304

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      30/50      3.08G       1.11      1.435      1.485         65        640: 100%|██████████| 28/28 [00:07<00:00,  3.65it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.70it/s]
                   all        112        220      0.561      0.547      0.541      0.295

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      31/50       3.1G      1.138      1.492      1.507         79        640: 100%|██████████| 28/28 [00:09<00:00,  3.06it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.48it/s]
                   all        112        220      0.666      0.454      0.559      0.311

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      32/50      3.11G      1.129      1.435      1.497         48        640: 100%|██████████| 28/28 [00:06<00:00,  4.41it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.53it/s]
                   all        112        220      0.665      0.548      0.607      0.338

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      33/50      3.13G      1.115      1.405      1.494         72        640: 100%|██████████| 28/28 [00:07<00:00,  3.65it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.74it/s]
                   all        112        220      0.606      0.535      0.569      0.306

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      34/50      3.15G      1.124      1.397      1.475         59        640: 100%|██████████| 28/28 [00:07<00:00,  3.64it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.77it/s]
                   all        112        220      0.544      0.566      0.553      0.301

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      35/50      3.17G      1.101      1.403      1.495         64        640: 100%|██████████| 28/28 [00:06<00:00,  4.30it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.70it/s]
                   all        112        220      0.599      0.532      0.569      0.304

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      36/50      3.18G      1.095       1.37      1.472         79        640: 100%|██████████| 28/28 [00:08<00:00,  3.40it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.34it/s]
                   all        112        220       0.55      0.566      0.573      0.315

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      37/50       3.2G      1.092      1.357      1.465         61        640: 100%|██████████| 28/28 [00:06<00:00,  4.16it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.16it/s]
                   all        112        220      0.575       0.55      0.585      0.329

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      38/50      3.22G      1.088      1.347      1.463         69        640: 100%|██████████| 28/28 [00:07<00:00,  3.68it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.44it/s]
                   all        112        220      0.539      0.572      0.575      0.318

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      39/50      3.23G      1.082        1.3      1.449         82        640: 100%|██████████| 28/28 [00:07<00:00,  3.51it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.48it/s]
                   all        112        220      0.645      0.532      0.577      0.323

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      40/50      3.25G      1.053      1.261      1.442         68        640: 100%|██████████| 28/28 [00:07<00:00,  3.96it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.42it/s]
                   all        112        220      0.622      0.529      0.573      0.323

Closing dataloader mosaic
albumentations: Blur(p=0.01, blur_limit=(3, 7)), MedianBlur(p=0.01, blur_limit=(3, 7)), ToGray(p=0.01, method='weighted_average', num_output_channels=3), CLAHE(p=0.01, clip_limit=(1.0, 4.0), tile_grid_size=(8, 8))

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      41/50      3.27G      1.048      1.429      1.524         23        640: 100%|██████████| 28/28 [00:08<00:00,  3.45it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.43it/s]
                   all        112        220      0.526      0.542      0.538       0.29

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      42/50      3.29G      1.001      1.397      1.517         25        640: 100%|██████████| 28/28 [00:07<00:00,  3.58it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.59it/s]
                   all        112        220      0.631      0.525      0.551      0.312

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      43/50       3.3G     0.9965      1.348      1.509         34        640: 100%|██████████| 28/28 [00:06<00:00,  4.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.54it/s]
                   all        112        220      0.641       0.51      0.587       0.33

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      44/50      3.32G     0.9401      1.218      1.457         19        640: 100%|██████████| 28/28 [00:07<00:00,  3.67it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.78it/s]
                   all        112        220      0.613      0.547      0.604      0.344

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      45/50      3.34G     0.9242      1.207      1.436         34        640: 100%|██████████| 28/28 [00:06<00:00,  4.18it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.02it/s]
                   all        112        220      0.675      0.539      0.614       0.34

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      46/50      3.35G     0.9096      1.162       1.41         31        640: 100%|██████████| 28/28 [00:06<00:00,  4.63it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.53it/s]
                   all        112        220      0.605      0.577      0.614      0.347

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      47/50      3.37G     0.9115      1.159      1.412         24        640: 100%|██████████| 28/28 [00:07<00:00,  3.63it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.52it/s]
                   all        112        220      0.595      0.575      0.608      0.349

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      48/50      3.39G     0.8484      1.121      1.376         25        640: 100%|██████████| 28/28 [00:06<00:00,  4.55it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.64it/s]
                   all        112        220      0.607      0.585      0.599      0.343

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      49/50       3.4G     0.8688      1.111      1.393         29        640: 100%|██████████| 28/28 [00:07<00:00,  3.64it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.55it/s]
                   all        112        220      0.612      0.561      0.605      0.343

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      50/50      3.42G     0.8677      1.099      1.375         23        640: 100%|██████████| 28/28 [00:08<00:00,  3.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.28it/s]
                   all        112        220      0.655      0.552      0.613      0.348

50 epochs completed in 0.135 hours.
Optimizer stripped from runs/detect/train/weights/last.pt, 6.3MB
Optimizer stripped from runs/detect/train/weights/best.pt, 6.3MB

Validating runs/detect/train/weights/best.pt...
Ultralytics 8.3.155 🚀 Python-3.11.13 torch-2.6.0+cu124 CUDA:0 (Tesla T4, 15095MiB)
Model summary (fused): 72 layers, 3,007,598 parameters, 0 gradients, 8.1 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.79it/s]
                   all        112        220      0.596      0.575      0.608      0.349
        chocolate_cake         10         10      0.512      0.736      0.807      0.546
          french_fries         16         16       0.74      0.938      0.967      0.588
             ice_cream         11         27      0.656      0.148      0.269      0.118
                nachos         11         31      0.646      0.323      0.317      0.145
            onion_ring         10         33      0.513      0.515      0.554      0.296
                 pizza         12         15      0.787      0.667      0.835      0.589
                samosa         14         39      0.644      0.846      0.838      0.424
  strawberry_shortcake         10         15      0.398      0.333        0.3      0.102
                 tacos         10         24      0.653      0.542      0.637      0.328
                waffle          9         10      0.414        0.7      0.553       0.35
Speed: 0.5ms preprocess, 2.6ms inference, 0.0ms loss, 4.6ms postprocess per image
Results saved to runs/detect/train
Ultralytics 8.3.155 🚀 Python-3.11.13 torch-2.6.0+cu124 CUDA:0 (Tesla T4, 15095MiB)
Model summary (fused): 72 layers, 3,007,598 parameters, 0 gradients, 8.1 GFLOPs
val: Fast image access ✅ (ping: 0.0±0.0 ms, read: 974.2±414.2 MB/s, size: 45.5 KB)
val: Scanning /content/datasets/labels/val.cache... 112 images, 0 backgrounds, 0 corrupt: 100%|██████████| 112/112 [00:00<?, ?it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 7/7 [00:03<00:00,  1.80it/s]
                   all        112        220      0.595      0.575      0.608      0.348
        chocolate_cake         10         10      0.512      0.737      0.807      0.541
          french_fries         16         16      0.738      0.938      0.967      0.587
             ice_cream         11         27      0.643      0.148       0.27      0.116
                nachos         11         31      0.649      0.323      0.316      0.145
            onion_ring         10         33      0.511      0.515      0.556      0.298
                 pizza         12         15      0.787      0.667      0.835      0.589
                samosa         14         39      0.646      0.846      0.838      0.423
  strawberry_shortcake         10         15      0.397      0.333        0.3      0.102
                 tacos         10         24      0.652      0.542      0.637      0.328
                waffle          9         10      0.415        0.7      0.553      0.352
Speed: 0.4ms preprocess, 9.2ms inference, 0.0ms loss, 8.1ms postprocess per image
Results saved to runs/detect/train2

[email protected] Results Per Class¶

Class Name [email protected]
chocolate_cake 0.807
french_fries 0.967
ice_cream 0.270
nachos 0.316
onion_ring 0.556
pizza 0.835
samosa 0.838
strawberry_shortcake 0.300
tacos 0.637
waffle 0.553
Overall (all) 0.608

Best Performing Classes:

French Fries (0.967) and Pizza (0.835) achieved the highest mAP scores, indicating strong detection and localization.

Samosa (0.838) also performed well, showing consistent feature representation.

Underperforming Classes:

Ice Cream (0.270), Strawberry Shortcake (0.300), and Nachos (0.316) had notably low mAP scores.

Possible reasons: high intra-class variation, occlusion, or limited training samples.

Balanced but Moderate Scores:

Classes like Waffle (0.553) and Onion Ring (0.556) had moderate scores, suggesting the model performs reasonably well but could benefit from more training data or improved augmentations.

Overall Performance:

The model achieves a solid overall [email protected] of 0.608, which indicates reasonably good object detection performance across multiple classes, but there's still room to improve underrepresented or visually complex categories.

Yolo with Augmenation¶

In [ ]:
# Load a model
model_aug = YOLO("yolov8n.pt")

# Train the model
model_aug.train(data="data.yaml", epochs=50, imgsz=640,augment=True )

# Evaluate on validation set
metrics = model_aug.val()
Ultralytics 8.3.155 🚀 Python-3.11.13 torch-2.6.0+cu124 CUDA:0 (Tesla T4, 15095MiB)
engine/trainer: agnostic_nms=False, amp=True, augment=True, auto_augment=randaugment, batch=16, bgr=0.0, box=7.5, cache=False, cfg=None, classes=None, close_mosaic=10, cls=0.5, conf=None, copy_paste=0.0, copy_paste_mode=flip, cos_lr=False, cutmix=0.0, data=data.yaml, degrees=0.0, deterministic=True, device=None, dfl=1.5, dnn=False, dropout=0.0, dynamic=False, embed=None, epochs=50, erasing=0.4, exist_ok=False, fliplr=0.5, flipud=0.0, format=torchscript, fraction=1.0, freeze=None, half=False, hsv_h=0.015, hsv_s=0.7, hsv_v=0.4, imgsz=640, int8=False, iou=0.7, keras=False, kobj=1.0, line_width=None, lr0=0.01, lrf=0.01, mask_ratio=4, max_det=300, mixup=0.0, mode=train, model=yolov8n.pt, momentum=0.937, mosaic=1.0, multi_scale=False, name=train3, nbs=64, nms=False, opset=None, optimize=False, optimizer=auto, overlap_mask=True, patience=100, perspective=0.0, plots=True, pose=12.0, pretrained=True, profile=False, project=None, rect=False, resume=False, retina_masks=False, save=True, save_conf=False, save_crop=False, save_dir=runs/detect/train3, save_frames=False, save_json=False, save_period=-1, save_txt=False, scale=0.5, seed=0, shear=0.0, show=False, show_boxes=True, show_conf=True, show_labels=True, simplify=True, single_cls=False, source=None, split=val, stream_buffer=False, task=detect, time=None, tracker=botsort.yaml, translate=0.1, val=True, verbose=True, vid_stride=1, visualize=False, warmup_bias_lr=0.1, warmup_epochs=3.0, warmup_momentum=0.8, weight_decay=0.0005, workers=8, workspace=None
Overriding model.yaml nc=80 with nc=10

                   from  n    params  module                                       arguments                     
  0                  -1  1       464  ultralytics.nn.modules.conv.Conv             [3, 16, 3, 2]                 
  1                  -1  1      4672  ultralytics.nn.modules.conv.Conv             [16, 32, 3, 2]                
  2                  -1  1      7360  ultralytics.nn.modules.block.C2f             [32, 32, 1, True]             
  3                  -1  1     18560  ultralytics.nn.modules.conv.Conv             [32, 64, 3, 2]                
  4                  -1  2     49664  ultralytics.nn.modules.block.C2f             [64, 64, 2, True]             
  5                  -1  1     73984  ultralytics.nn.modules.conv.Conv             [64, 128, 3, 2]               
  6                  -1  2    197632  ultralytics.nn.modules.block.C2f             [128, 128, 2, True]           
  7                  -1  1    295424  ultralytics.nn.modules.conv.Conv             [128, 256, 3, 2]              
  8                  -1  1    460288  ultralytics.nn.modules.block.C2f             [256, 256, 1, True]           
  9                  -1  1    164608  ultralytics.nn.modules.block.SPPF            [256, 256, 5]                 
 10                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 11             [-1, 6]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 12                  -1  1    148224  ultralytics.nn.modules.block.C2f             [384, 128, 1]                 
 13                  -1  1         0  torch.nn.modules.upsampling.Upsample         [None, 2, 'nearest']          
 14             [-1, 4]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 15                  -1  1     37248  ultralytics.nn.modules.block.C2f             [192, 64, 1]                  
 16                  -1  1     36992  ultralytics.nn.modules.conv.Conv             [64, 64, 3, 2]                
 17            [-1, 12]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 18                  -1  1    123648  ultralytics.nn.modules.block.C2f             [192, 128, 1]                 
 19                  -1  1    147712  ultralytics.nn.modules.conv.Conv             [128, 128, 3, 2]              
 20             [-1, 9]  1         0  ultralytics.nn.modules.conv.Concat           [1]                           
 21                  -1  1    493056  ultralytics.nn.modules.block.C2f             [384, 256, 1]                 
 22        [15, 18, 21]  1    753262  ultralytics.nn.modules.head.Detect           [10, [64, 128, 256]]          
Model summary: 129 layers, 3,012,798 parameters, 3,012,782 gradients, 8.2 GFLOPs

Transferred 319/355 items from pretrained weights
Freezing layer 'model.22.dfl.conv.weight'
AMP: running Automatic Mixed Precision (AMP) checks...
AMP: checks passed ✅
train: Fast image access ✅ (ping: 0.0±0.0 ms, read: 1095.9±457.4 MB/s, size: 42.2 KB)
train: Scanning /content/datasets/labels/train.cache... 447 images, 0 backgrounds, 0 corrupt: 100%|██████████| 447/447 [00:00<?, ?it/s]
albumentations: Blur(p=0.01, blur_limit=(3, 7)), MedianBlur(p=0.01, blur_limit=(3, 7)), ToGray(p=0.01, method='weighted_average', num_output_channels=3), CLAHE(p=0.01, clip_limit=(1.0, 4.0), tile_grid_size=(8, 8))

val: Fast image access ✅ (ping: 0.0±0.0 ms, read: 287.2±161.2 MB/s, size: 56.3 KB)
val: Scanning /content/datasets/labels/val.cache... 112 images, 0 backgrounds, 0 corrupt: 100%|██████████| 112/112 [00:00<?, ?it/s]
Plotting labels to runs/detect/train3/labels.jpg... 
optimizer: 'optimizer=auto' found, ignoring 'lr0=0.01' and 'momentum=0.937' and determining best 'optimizer', 'lr0' and 'momentum' automatically... 
optimizer: AdamW(lr=0.000714, momentum=0.9) with parameter groups 57 weight(decay=0.0), 64 weight(decay=0.0005), 63 bias(decay=0.0)
Image sizes 640 train, 640 val
Using 2 dataloader workers
Logging results to runs/detect/train3
Starting training for 50 epochs...

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       1/50      2.21G      1.455      3.802       1.78         81        640: 100%|██████████| 28/28 [00:09<00:00,  3.04it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.13it/s]
                   all        112        220    0.00685       0.86      0.105     0.0551

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       2/50      2.37G       1.37      3.317      1.767         74        640: 100%|██████████| 28/28 [00:07<00:00,  3.81it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.95it/s]
                   all        112        220    0.00939      0.848      0.129     0.0592

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       3/50      2.37G      1.423       3.01      1.795         70        640: 100%|██████████| 28/28 [00:06<00:00,  4.15it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.55it/s]
                   all        112        220      0.235      0.237      0.173     0.0714

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       4/50      2.37G      1.392      2.808       1.81         54        640: 100%|██████████| 28/28 [00:08<00:00,  3.43it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.60it/s]
                   all        112        220      0.452      0.221      0.231       0.11

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       5/50      2.37G      1.389      2.642      1.765         80        640: 100%|██████████| 28/28 [00:07<00:00,  3.83it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.24it/s]
                   all        112        220      0.317      0.357      0.292      0.132

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       6/50      2.37G      1.421      2.531      1.783         64        640: 100%|██████████| 28/28 [00:06<00:00,  4.01it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.32it/s]
                   all        112        220      0.322      0.426      0.298      0.143

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       7/50      2.37G      1.415      2.397      1.767         57        640: 100%|██████████| 28/28 [00:08<00:00,  3.44it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.36it/s]
                   all        112        220      0.309      0.432      0.338      0.157

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       8/50      2.37G      1.403      2.414      1.736         61        640: 100%|██████████| 28/28 [00:06<00:00,  4.34it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.30it/s]
                   all        112        220      0.291      0.294      0.254      0.118

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
       9/50      2.37G      1.371      2.311      1.717         83        640: 100%|██████████| 28/28 [00:08<00:00,  3.45it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.94it/s]
                   all        112        220      0.271      0.341       0.27      0.129

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      10/50      2.37G      1.411      2.296      1.753         65        640: 100%|██████████| 28/28 [00:07<00:00,  3.74it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.14it/s]
                   all        112        220      0.425      0.419      0.406      0.221

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      11/50      2.37G      1.379      2.207      1.716         51        640: 100%|██████████| 28/28 [00:06<00:00,  4.33it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.38it/s]
                   all        112        220       0.41      0.432      0.368      0.201

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      12/50      2.37G      1.349      2.169      1.696         59        640: 100%|██████████| 28/28 [00:08<00:00,  3.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.35it/s]
                   all        112        220      0.392      0.363      0.339      0.184

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      13/50      2.37G      1.328       2.11      1.674         82        640: 100%|██████████| 28/28 [00:08<00:00,  3.20it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.39it/s]
                   all        112        220      0.478      0.415      0.423      0.219

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      14/50      2.37G      1.323      2.041      1.695         70        640: 100%|██████████| 28/28 [00:06<00:00,  4.48it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.31it/s]
                   all        112        220      0.615      0.392      0.431      0.226

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      15/50      2.37G      1.315      1.985      1.658         70        640: 100%|██████████| 28/28 [00:08<00:00,  3.17it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.50it/s]
                   all        112        220      0.514      0.382      0.396      0.196

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      16/50      2.37G      1.282      1.934      1.624         84        640: 100%|██████████| 28/28 [00:08<00:00,  3.42it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.19it/s]
                   all        112        220      0.428      0.473       0.45      0.233

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      17/50      2.37G      1.336       1.95      1.652         62        640: 100%|██████████| 28/28 [00:06<00:00,  4.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.32it/s]
                   all        112        220      0.445      0.486      0.457      0.247

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      18/50      2.37G      1.267      1.935      1.633         80        640: 100%|██████████| 28/28 [00:08<00:00,  3.37it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.71it/s]
                   all        112        220       0.59      0.326      0.381      0.208

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      19/50      2.37G      1.272      1.787      1.629         38        640: 100%|██████████| 28/28 [00:06<00:00,  4.31it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.68it/s]
                   all        112        220      0.588      0.401       0.46      0.236

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      20/50      2.37G      1.266      1.798      1.611         60        640: 100%|██████████| 28/28 [00:07<00:00,  3.99it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.40it/s]
                   all        112        220      0.494      0.463       0.46      0.244

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      21/50      2.37G      1.253      1.767      1.595         76        640: 100%|██████████| 28/28 [00:07<00:00,  3.59it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.81it/s]
                   all        112        220      0.789      0.425      0.539      0.305

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      22/50      2.37G      1.226      1.756       1.57         66        640: 100%|██████████| 28/28 [00:06<00:00,  4.38it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.38it/s]
                   all        112        220      0.516      0.498       0.47      0.262

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      23/50      2.37G      1.219      1.751       1.59         59        640: 100%|██████████| 28/28 [00:08<00:00,  3.48it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.69it/s]
                   all        112        220      0.555      0.413      0.493       0.26

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      24/50      2.37G      1.197      1.726      1.571         52        640: 100%|██████████| 28/28 [00:07<00:00,  3.53it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.00it/s]
                   all        112        220      0.543      0.441      0.479      0.252

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      25/50      2.37G      1.209      1.647      1.554         75        640: 100%|██████████| 28/28 [00:06<00:00,  4.28it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.45it/s]
                   all        112        220      0.503      0.491      0.501      0.265

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      26/50      2.37G      1.186      1.595      1.535         73        640: 100%|██████████| 28/28 [00:08<00:00,  3.44it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.54it/s]
                   all        112        220      0.481      0.482      0.483      0.257

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      27/50      2.37G      1.207      1.538      1.535         65        640: 100%|██████████| 28/28 [00:06<00:00,  4.20it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.40it/s]
                   all        112        220      0.663      0.459       0.48       0.27

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      28/50      2.37G      1.162      1.577      1.522         72        640: 100%|██████████| 28/28 [00:08<00:00,  3.24it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.41it/s]
                   all        112        220      0.489      0.519      0.539      0.292

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      29/50      2.37G      1.153      1.571      1.527         44        640: 100%|██████████| 28/28 [00:08<00:00,  3.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.27it/s]
                   all        112        220      0.653      0.508      0.546      0.304

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      30/50      2.37G       1.11      1.435      1.485         65        640: 100%|██████████| 28/28 [00:06<00:00,  4.29it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.56it/s]
                   all        112        220      0.561      0.547      0.541      0.295

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      31/50      2.37G      1.138      1.492      1.507         79        640: 100%|██████████| 28/28 [00:08<00:00,  3.25it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.28it/s]
                   all        112        220      0.666      0.454      0.559      0.311

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      32/50      2.37G      1.129      1.435      1.497         48        640: 100%|██████████| 28/28 [00:08<00:00,  3.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.11it/s]
                   all        112        220      0.665      0.548      0.607      0.338

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      33/50      2.37G      1.115      1.405      1.494         72        640: 100%|██████████| 28/28 [00:06<00:00,  4.29it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.62it/s]
                   all        112        220      0.606      0.535      0.569      0.306

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      34/50      2.37G      1.124      1.397      1.475         59        640: 100%|██████████| 28/28 [00:07<00:00,  3.57it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.73it/s]
                   all        112        220      0.544      0.566      0.553      0.301

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      35/50      2.37G      1.101      1.403      1.495         64        640: 100%|██████████| 28/28 [00:08<00:00,  3.38it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.76it/s]
                   all        112        220      0.599      0.532      0.569      0.304

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      36/50      2.37G      1.095       1.37      1.472         79        640: 100%|██████████| 28/28 [00:06<00:00,  4.37it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.15it/s]
                   all        112        220       0.55      0.566      0.573      0.315

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      37/50      2.37G      1.092      1.357      1.465         61        640: 100%|██████████| 28/28 [00:08<00:00,  3.49it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.32it/s]
                   all        112        220      0.575       0.55      0.585      0.329

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      38/50      2.37G      1.088      1.347      1.463         69        640: 100%|██████████| 28/28 [00:09<00:00,  2.86it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  2.88it/s]
                   all        112        220      0.539      0.572      0.575      0.318

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      39/50      2.37G      1.082        1.3      1.449         82        640: 100%|██████████| 28/28 [00:06<00:00,  4.41it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.41it/s]
                   all        112        220      0.645      0.532      0.577      0.323

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      40/50      2.37G      1.053      1.261      1.442         68        640: 100%|██████████| 28/28 [00:07<00:00,  3.59it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.31it/s]
                   all        112        220      0.622      0.529      0.573      0.323

Closing dataloader mosaic
albumentations: Blur(p=0.01, blur_limit=(3, 7)), MedianBlur(p=0.01, blur_limit=(3, 7)), ToGray(p=0.01, method='weighted_average', num_output_channels=3), CLAHE(p=0.01, clip_limit=(1.0, 4.0), tile_grid_size=(8, 8))

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      41/50      2.39G      1.048      1.429      1.524         23        640: 100%|██████████| 28/28 [00:08<00:00,  3.34it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.93it/s]
                   all        112        220      0.526      0.542      0.538       0.29

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      42/50      2.39G      1.001      1.397      1.517         25        640: 100%|██████████| 28/28 [00:06<00:00,  4.41it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.42it/s]
                   all        112        220      0.631      0.525      0.551      0.312

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      43/50      2.39G     0.9965      1.348      1.509         34        640: 100%|██████████| 28/28 [00:07<00:00,  3.54it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.77it/s]
                   all        112        220      0.641       0.51      0.587       0.33

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      44/50      2.39G     0.9401      1.218      1.457         19        640: 100%|██████████| 28/28 [00:06<00:00,  4.06it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:02<00:00,  1.98it/s]
                   all        112        220      0.613      0.547      0.604      0.344

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      45/50      2.39G     0.9242      1.207      1.436         34        640: 100%|██████████| 28/28 [00:06<00:00,  4.04it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.70it/s]
                   all        112        220      0.675      0.539      0.614       0.34

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      46/50      2.39G     0.9096      1.162       1.41         31        640: 100%|██████████| 28/28 [00:07<00:00,  3.60it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.81it/s]
                   all        112        220      0.605      0.577      0.614      0.347

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      47/50      2.39G     0.9115      1.159      1.412         24        640: 100%|██████████| 28/28 [00:06<00:00,  4.56it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.60it/s]
                   all        112        220      0.595      0.575      0.608      0.349

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      48/50      2.39G     0.8484      1.121      1.376         25        640: 100%|██████████| 28/28 [00:07<00:00,  3.71it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:00<00:00,  4.09it/s]
                   all        112        220      0.607      0.585      0.599      0.343

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      49/50      2.39G     0.8688      1.111      1.393         29        640: 100%|██████████| 28/28 [00:09<00:00,  3.10it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.18it/s]
                   all        112        220      0.612      0.561      0.605      0.343

      Epoch    GPU_mem   box_loss   cls_loss   dfl_loss  Instances       Size
      50/50      2.39G     0.8677      1.099      1.375         23        640: 100%|██████████| 28/28 [00:06<00:00,  4.43it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:01<00:00,  3.81it/s]
                   all        112        220      0.655      0.552      0.613      0.348

50 epochs completed in 0.129 hours.
Optimizer stripped from runs/detect/train3/weights/last.pt, 6.3MB
Optimizer stripped from runs/detect/train3/weights/best.pt, 6.3MB

Validating runs/detect/train3/weights/best.pt...
Ultralytics 8.3.155 🚀 Python-3.11.13 torch-2.6.0+cu124 CUDA:0 (Tesla T4, 15095MiB)
Model summary (fused): 72 layers, 3,007,598 parameters, 0 gradients, 8.1 GFLOPs
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 4/4 [00:05<00:00,  1.36s/it]
                   all        112        220      0.761      0.524      0.628      0.376
        chocolate_cake         10         10      0.758        0.8      0.861      0.577
          french_fries         16         16      0.995      0.938      0.971      0.551
             ice_cream         11         27      0.649      0.037      0.313      0.159
                nachos         11         31      0.609      0.129      0.302      0.139
            onion_ring         10         33      0.786      0.447      0.608      0.324
                 pizza         12         15      0.905      0.733      0.794      0.606
                samosa         14         39       0.81      0.765      0.833      0.451
  strawberry_shortcake         10         15      0.555        0.2      0.272      0.164
                 tacos         10         24      0.825      0.591      0.708      0.393
                waffle          9         10      0.717        0.6      0.623        0.4
Speed: 0.4ms preprocess, 27.6ms inference, 0.0ms loss, 6.6ms postprocess per image
Results saved to runs/detect/train3
Ultralytics 8.3.155 🚀 Python-3.11.13 torch-2.6.0+cu124 CUDA:0 (Tesla T4, 15095MiB)
Model summary (fused): 72 layers, 3,007,598 parameters, 0 gradients, 8.1 GFLOPs
val: Fast image access ✅ (ping: 0.0±0.0 ms, read: 1318.1±371.6 MB/s, size: 45.5 KB)
val: Scanning /content/datasets/labels/val.cache... 112 images, 0 backgrounds, 0 corrupt: 100%|██████████| 112/112 [00:00<?, ?it/s]
                 Class     Images  Instances      Box(P          R      mAP50  mAP50-95): 100%|██████████| 7/7 [00:03<00:00,  1.93it/s]
                   all        112        220      0.761      0.524      0.628      0.378
        chocolate_cake         10         10      0.758        0.8      0.861      0.577
          french_fries         16         16      0.994      0.938      0.971      0.551
             ice_cream         11         27      0.644      0.037      0.313      0.158
                nachos         11         31      0.611      0.129      0.302      0.139
            onion_ring         10         33      0.786      0.446      0.608      0.326
                 pizza         12         15      0.904      0.733      0.791      0.605
                samosa         14         39       0.81      0.767      0.833      0.451
  strawberry_shortcake         10         15      0.555        0.2      0.272      0.164
                 tacos         10         24      0.825      0.589      0.709      0.393
                waffle          9         10      0.717        0.6      0.623      0.412
Speed: 2.6ms preprocess, 14.6ms inference, 0.0ms loss, 3.1ms postprocess per image
Results saved to runs/detect/train32

[email protected] Results Per Class (New Evaluation)¶

Class Name [email protected]
chocolate_cake 0.861
french_fries 0.971
ice_cream 0.313
nachos 0.302
onion_ring 0.608
pizza 0.791
samosa 0.833
strawberry_shortcake 0.272
tacos 0.709
waffle 0.623
Overall (all) 0.628

High Performing Classes French Fries (0.971) and Chocolate Cake (0.861) showed excellent detection, likely due to consistent features and adequate training examples.

Pizza (0.791) and Samosa (0.833) also performed well, suggesting strong feature representation and model confidence.

Moderate Performance Tacos (0.709), Waffle (0.623), and Onion Ring (0.608) had reasonable performance but still have headroom for improvement via augmentations or class-specific tuning.

Low Performing Classes Ice Cream (0.313), Nachos (0.302), and Strawberry Shortcake (0.272) had poor mAP scores.

Possible causes:

  • High intra-class variability (e.g., ice cream shape/containers).

  • Similar visual textures with other classes (e.g., whipped cream or crispy textures).

Overall Model Quality The overall [email protected] = 0.628, which is an improvement over the previous score (0.608), indicating slightly better generalization and bounding box quality.

Pickle the Yolo Augmented¶

In [ ]:
# Pickle the model
model_aug.save('yolo_model_aug.pt')

Show the images from Parent data set using yolo which we have neither used in train,test and validation¶

In [ ]:
# Import necessary libraries
from ultralytics import YOLO
import os
import cv2
import random
import matplotlib.pyplot as plt

# Define the root folder where images are stored (structure: Food_101/class_name/image.jpg)
image_root = 'Food_101'

# Load the trained YOLO model
model = YOLO('yolo_model_aug.pt')

# Get the list of already-used images and classes from the annotation DataFrame
existing_images = set(annotation_df['image'].tolist())
existing_class = set(annotation_df['class_name'].tolist())

# Prepare a dictionary to store selected image paths per class
class_to_images = {}

# Loop through each class for which we want to visualize predictions
for class_name in existing_class:
    class_path = os.path.join(image_root, class_name)  # Path to the class folder
    print(class_path)

    # Get all unused .jpg images in the class folder
    all_images = [
        img for img in os.listdir(class_path)
        if img.lower().endswith('.jpg') and img not in existing_images
    ]

    # Randomly sample up to 3 images from the available ones
    selected = random.sample(all_images, min(3, len(all_images)))

    # Store the full image paths
    class_to_images[class_name] = [os.path.join(class_path, img) for img in selected]

# Plot predictions: 1 row per class, 3 images per class
for class_name, image_paths in class_to_images.items():
    plt.figure(figsize=(6, 6))

    for idx, img_path in enumerate(image_paths):
        # Run YOLO model on the image
        results = model(img_path)

        # Draw predicted bounding boxes on the image
        annotated_img = results[0].plot()

        # Show the annotated image in the subplot
        plt.subplot(1, 3, idx + 1)
        plt.imshow(cv2.cvtColor(annotated_img, cv2.COLOR_BGR2RGB))
        plt.axis('off')
        plt.title(f"{class_name}")

    # Adjust layout and display
    plt.tight_layout()
    plt.show()
Food_101/tacos
Food_101/ice_cream
Food_101/onion_ring
Food_101/french_fries
Food_101/pizza
Food_101/nachos
Food_101/chocolate_cake
Food_101/waffle
Food_101/strawberry_shortcake
Food_101/samosa

image 1/1 /content/Food_101/tacos/864338.jpg: 640x640 2 tacoss, 20.4ms
Speed: 4.0ms preprocess, 20.4ms inference, 2.8ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/tacos/3670272.jpg: 640x480 2 tacoss, 12.5ms
Speed: 3.1ms preprocess, 12.5ms inference, 2.4ms postprocess per image at shape (1, 3, 640, 480)

image 1/1 /content/Food_101/tacos/1337608.jpg: 640x640 1 tacos, 15.1ms
Speed: 4.1ms preprocess, 15.1ms inference, 2.7ms postprocess per image at shape (1, 3, 640, 640)
No description has been provided for this image
image 1/1 /content/Food_101/ice_cream/1789728.jpg: 640x640 1 chocolate_cake, 10.4ms
Speed: 4.6ms preprocess, 10.4ms inference, 2.1ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/ice_cream/1533825.jpg: 640x480 1 ice_cream, 14.2ms
Speed: 3.4ms preprocess, 14.2ms inference, 1.9ms postprocess per image at shape (1, 3, 640, 480)

image 1/1 /content/Food_101/ice_cream/128955.jpg: 480x640 (no detections), 8.4ms
Speed: 3.5ms preprocess, 8.4ms inference, 0.8ms postprocess per image at shape (1, 3, 480, 640)
No description has been provided for this image
image 1/1 /content/Food_101/onion_ring/2537186.jpg: 640x640 1 onion_ring, 11.3ms
Speed: 5.4ms preprocess, 11.3ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/onion_ring/3090546.jpg: 640x640 1 onion_ring, 8.5ms
Speed: 4.3ms preprocess, 8.5ms inference, 2.1ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/onion_ring/321297.jpg: 640x480 3 onion_rings, 10.3ms
Speed: 3.7ms preprocess, 10.3ms inference, 1.8ms postprocess per image at shape (1, 3, 640, 480)
No description has been provided for this image
image 1/1 /content/Food_101/french_fries/87125.jpg: 640x480 (no detections), 13.2ms
Speed: 3.7ms preprocess, 13.2ms inference, 0.9ms postprocess per image at shape (1, 3, 640, 480)

image 1/1 /content/Food_101/french_fries/2634202.jpg: 640x640 1 french_fries, 9.7ms
Speed: 5.2ms preprocess, 9.7ms inference, 2.1ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/french_fries/2952319.jpg: 640x640 1 french_fries, 9.9ms
Speed: 4.1ms preprocess, 9.9ms inference, 1.8ms postprocess per image at shape (1, 3, 640, 640)
No description has been provided for this image
image 1/1 /content/Food_101/pizza/1475479.jpg: 480x640 1 pizza, 11.5ms
Speed: 4.5ms preprocess, 11.5ms inference, 2.1ms postprocess per image at shape (1, 3, 480, 640)

image 1/1 /content/Food_101/pizza/2101820.jpg: 640x640 1 waffle, 10.4ms
Speed: 5.0ms preprocess, 10.4ms inference, 2.1ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/pizza/1524655.jpg: 640x640 1 pizza, 9.0ms
Speed: 4.2ms preprocess, 9.0ms inference, 1.9ms postprocess per image at shape (1, 3, 640, 640)
No description has been provided for this image
image 1/1 /content/Food_101/nachos/3665796.jpg: 640x640 1 tacos, 9.9ms
Speed: 5.4ms preprocess, 9.9ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/nachos/1421208.jpg: 640x640 1 nachos, 10.7ms
Speed: 4.1ms preprocess, 10.7ms inference, 2.1ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/nachos/1622749.jpg: 640x640 1 nachos, 8.8ms
Speed: 4.1ms preprocess, 8.8ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)
No description has been provided for this image
image 1/1 /content/Food_101/chocolate_cake/2493269.jpg: 640x640 2 chocolate_cakes, 9.0ms
Speed: 4.9ms preprocess, 9.0ms inference, 1.8ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/chocolate_cake/1749877.jpg: 384x640 (no detections), 100.0ms
Speed: 2.8ms preprocess, 100.0ms inference, 0.7ms postprocess per image at shape (1, 3, 384, 640)

image 1/1 /content/Food_101/chocolate_cake/1933924.jpg: 640x640 1 chocolate_cake, 10.7ms
Speed: 4.2ms preprocess, 10.7ms inference, 1.8ms postprocess per image at shape (1, 3, 640, 640)
No description has been provided for this image
image 1/1 /content/Food_101/waffle/1511442.jpg: 640x640 1 samosa, 14.8ms
Speed: 5.1ms preprocess, 14.8ms inference, 2.5ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/waffle/435303.jpg: 640x640 1 waffle, 8.3ms
Speed: 3.3ms preprocess, 8.3ms inference, 1.8ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/waffle/789765.jpg: 480x640 2 waffles, 9.7ms
Speed: 3.4ms preprocess, 9.7ms inference, 1.9ms postprocess per image at shape (1, 3, 480, 640)
No description has been provided for this image
image 1/1 /content/Food_101/strawberry_shortcake/2496900.jpg: 480x640 1 ice_cream, 19.0ms
Speed: 3.3ms preprocess, 19.0ms inference, 4.6ms postprocess per image at shape (1, 3, 480, 640)

image 1/1 /content/Food_101/strawberry_shortcake/1828286.jpg: 640x640 1 strawberry_shortcake, 9.6ms
Speed: 4.4ms preprocess, 9.6ms inference, 2.0ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/strawberry_shortcake/1486158.jpg: 640x640 (no detections), 9.0ms
Speed: 4.2ms preprocess, 9.0ms inference, 0.9ms postprocess per image at shape (1, 3, 640, 640)
No description has been provided for this image
image 1/1 /content/Food_101/samosa/1201331.jpg: 640x640 3 samosas, 12.0ms
Speed: 4.8ms preprocess, 12.0ms inference, 2.1ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/samosa/2232162.jpg: 640x640 2 samosas, 8.2ms
Speed: 4.3ms preprocess, 8.2ms inference, 1.9ms postprocess per image at shape (1, 3, 640, 640)

image 1/1 /content/Food_101/samosa/2634281.jpg: 480x640 1 ice_cream, 1 samosa, 9.0ms
Speed: 3.2ms preprocess, 9.0ms inference, 1.8ms postprocess per image at shape (1, 3, 480, 640)
No description has been provided for this image

Observations from Unseen Samples

  • We selected 3 random unseen images per class (not present in the training dataset) to evaluate the generalization of the trained YOLO model on out-of-distribution samples.

  • The model occasionally misclassifies visually similar food items, for instance, detecting nachos as tacos. This likely stems from overlapping visual cues such as corn chips, cheese, and toppings, which are common to both classes.

  • Waffle images were sometimes misclassified as onion rings, possibly due to similar circular patterns and golden-brown textures, highlighting a need for better texture and shape feature discrimination.

  • While the model successfully detects ice cream in multiple scenarios, it fails to detect it in some edge cases. These failures might be due to poor lighting, partial occlusion, or variations in serving styles not captured during training.

  • The mixed results demonstrate that while the model exhibits strong generalization to unseen data, inter-class confusion remains for visually similar categories, suggesting potential improvements through hard-negative mining, advanced augmentations, or fine-tuning with edge-case examples.

  • Overall, the evaluation confirms that the model is capable of handling moderate domain shifts, but further robustness can be achieved through iterative retraining using misclassified instances from such real-world samples.

Model Selection¶

🍽️ Object Detection Performance Comparison¶

Model Overall [email protected] tacos samosa french_fries strawberry_shortcake ice_cream onion_ring nachos pizza chocolate_cake waffle
RCNN 0.553 0.303 0.227 0.909 0.909 0.000 0.909 0.000 0.455 0.909 0.909
Faster RCNN 0.405 0.386 0.422 0.727 0.361 0.145 0.304 0.209 0.727 0 0.364
YOLOv8 0.628 0.709 0.833 0.971 0.272 0.313 0.608 0.302 0.791 0.861 0.623

Key Takeaways and Recommendations¶

RCNN

  • Training Time: Very high (1.52+ minutes for ~450 images)
  • Overall [email protected]: 0.553
  • Class-wise Performance:
    • High accuracy for chocolate_cake, waffle, french_fries, onion_ring, strawberry_shortcake
    • Poor detection for ice_cream, nachos

Faster RCNN

  • Training Time: Moderate (30 epochs)
  • [email protected]:
    • Without Augmentation: 0.405
    • With Augmentation: Not explicitly reported, but presumed improved based on loss patterns
  • Class-wise Performance:
    • Strong for pizza, french_fries, samosa
    • Weak for ice_cream, nachos, strawberry_shortcake

YOLO

  • Training Time: Very low (50 epochs in ~8 minutes)
  • Overall [email protected]:
    • Without Augmentation: 0.608
    • With Augmentation: 0.628
  • Class-wise Insights:
    • Strong performance on french_fries, samosa, pizza, chocolate_cake
    • Weak on strawberry_shortcake, ice_cream, nachos

Key Observations¶

Model-wise

  • YOLO is the fastest to train and shows the best overall performance ([email protected] = 0.628 with augmentation)
  • RCNN has moderate performance but very high training time and zero detection on a few classes
  • Faster RCNN benefits from augmentation, but still lags behind YOLO in mAP and training efficiency

Augmentation impact

  • Clear boost in mAP for YOLO (+0.02) and qualitative improvements for Faster RCNN
  • Not used for RCNN but could help address zero-detection issues for ice_cream and nachos

Class-wise consistency

  • french_fries, chocolate_cake, samosa, pizza show strong detection across all models
  • ice_cream, nachos, and strawberry_shortcake are consistently weaker, likely due to poor data representation or higher intra-class variance

Recommendations¶

Business Level

  • Adopt YOLO for real-time or resource-constrained deployment due to high accuracy and fast inference
  • Use Faster RCNN with augmentation for offline batch processing or tasks requiring higher precision
  • Avoid RCNN in production without significant enhancements due to high training time and poor generalization

Data Strategy

  • Improve dataset balance and image quality for weak classes like nachos, ice_cream, and strawberry_shortcake
  • Use synthetic augmentation techniques for underrepresented classes

Model Optimization

  • Always use data augmentation in training pipelines
  • Explore class-specific fine-tuning or curriculum learning for weak classes

Evaluation Expansion

  • Incorporate metrics like [email protected] and mAP@[0.5:0.95] to assess localization precision
  • Analyze F1-scores and confusion matrices to better understand false positive and negative rates

Scalability Note

  • YOLO is ideal for scalable deployment (edge devices, web, mobile)
  • Faster RCNN suits cloud-based analytic pipelines or applications prioritizing detection quality over speed

Conclusion¶

YOLO with augmentation provides the best tradeoff between accuracy, speed, and deployment practicality. Faster RCNN with augmentation offers decent performance for quality-centric use cases. RCNN in its current form is not recommended without further optimization or augmentation support.